This preview shows page 1. Sign up to view the full content.
Unformatted text preview: History Gdel's Incompleteness Halting Math Truth No Proof System for Number Theory Reduction to Halting Problem Lecture 3 Jeff Edmonds York University COSC 4111 History of Proofs
Euclid said, " Let there be proofs" Euclid (300 BC) And it was good. History of Proofs
Euclid said, " Let there be proofs"
Clearly everything is either true or false. Goal: Design a proof system that proves everything. Result: "Prove that God exists" Euclid (300 BC) History of Proofs
A proof system consists of 1. A finite set of axioms (Statements assumed to be true) Eg. 1) Any two points can be joined by a straight line .... 5) Parallel lines never meet.
Euclid (300 BC) Euclid said, " Let there be proofs" History of Proofs
A proof system consists of 1. A finite set of axioms (Statements assumed to be true) 2. A finite set of rules for proving one statement from previously proved theorems.
Euclid (300 BC) Euclid said, " Let there be proofs" Eg: If statements A and A B have been proved, then statement B follows. History of Proofs
To the ancients, the parallel axiom "5) Parallel lines never meet." seemed less obvious than the others. (God would want a cleaner world) By 1763 at least 28 different proofs had been published.
Euclid (300 BC) They wanted to prove it from the other four. They were all false!!! There exist NonEuclidian (curved) worlds in which first the four axioms are true and the fifth is false. Examples: Earth & Our universe. History of Proofs
Euclid said, " Let there be proofs"
Oops Some things have no proof and whether true or false depends on your world view. Clearly everything is either true or false. Euclid (300 BC) History of Proofs
Euclid said, " Let there be proofs"
Clearly everything is either true or false. Consider only statements in Number Theory i.e. statements about the integers. eg: I = [ a,b,c,r 3 ar+br cr] Clearly each such statement is either true or false. Goal: Design a proof system that proves/disproves all of these. Euclid (300 BC) History of Proofs
Gdel's Incompleteness Theorem
Some things have no proof and whether true or false depends on your world view. For every proof system S, there are math statements I which are either not proved or proved incorrectly!
Gdel 1931 Proof (CS Theory) If there was such an S then the problem "Math Truth" would be computable. But it is not. Math Truth
Problem: Math Truth Instance: A math statement I eg. I = [ a,b,c,r 3 ar+br cr] Solution: A proof P either of I or of I I could give the proof P to you I can check if it is a valid proof within S. Doesn't this mean the problem is in NP? No, because the proofs may be really big. Math Truth
Here is an algorithm for Math Truth (Even without me) Alg(I): Loop through all proofs P if P is a proof in S of I or of I exit Eventually this program will find the proof and stop. Math Truth wrt Proof System
Computable
Math Truth Halting Exp Poly Math Truth
Here is an algorithm for Math Truth (Even without me) Alg(I): Loop through all proofs P if P is a proof in S of I or of I exit Wait! Math Truth
Here is an algorithm for Math Truth (Even without me) Alg(I): Loop through all proofs P if P is a proof in S of I or of I exit But what if P has no proof? Then this algorithm runs for ever. Will this algorithm ever stop? It reminds me of the Halting problem! Math Truth
Here is an algorithm for Math Truth (Even without me) Alg(I): Loop through all proofs P if P is a proof in S of I or of I exit Clearly each statement in Number Theory is either true or false. But what if P has no proof? Goal: Design a proof system S that proves/disproves all of these. Math Truth
If there was such an S then the problem "Math Truth" would be computable. Alg(I): Loop through all proofs P if P is a proof in S of I or of I exit Goal: Design a proof system S that proves/disproves all of these. Math Truth wrt Proof System
Computable
Math Truth wrt Proof System Math Truth ? Halting Exp Contradiction!
And hence, there is no such proof system S!!! Poly Math Truth wrt Proof System
Wait. We must still prove:
Math Truth Math Truth wrt Proof System Computable Exp Halting Maybe it is similar to the Halting problem And hence, there is no such proof system S!!! Poly Halting problem poly Math Truth
<P,I> Program P halts on input I or not Math statement: "Program P halts on input I" Math statement is true or not BUILD: Halting GIVEN: Oracle Math Proof Oracle Math statement: "Program P halts on input I" " = C, "C is an integer encoding a valid halting computation for program P on input I" Halting problem poly Math Truth A valid computation of a TM Time state Tape Contents Head 1 102 [0,1,1,0,0,1,1] 2 10112 [1,1,1,0,0,1,1] i 11012 i+1 10102 Mark Head with digit 2 ... ... [0,0,1,1,0,0,1,1,0] [0,0,1,1,1,0,1,1,0] ... ... Math statement: "Program P halts on input I" " = C, "C is an integer encoding a valid halting computation for program P on input I" Halting problem poly Math Truth A valid computation of a TM Time state Tape Contents Head 2 1 102 [2,0,1,1,0,0,1,1] 2 10112 [1,2,1,1,0,0,1,1] i 11012 i+1 10102 Separate blocks Mark Head with digits 3,4 with digit 2 ... ... [0,0,1,1,2,0,0,1,1,0] [0,0,1,2,1,1,0,1,1,0] ... ... Math statement: "Program P halts on input I" " = C, "C is an integer encoding a valid halting computation for program P on input I" Halting problem poly Math Truth A valid computation of a TM Time state Tape Contents Head 2 4 10 3 [2,0,1,1,0,0,1,1] 4 1011 3 [1,2,1,1,0,0,1,1] Separate blocks Remove [,] with digits 3,4 ... ... 4 4 1101 1010 3 [0,0,1,1,2,0,0,1,1,0] 3 [0,0,1,2,1,1,0,1,1,0] ... ... Math statement: "Program P halts on input I" " = C, "C is an integer encoding a valid halting computation for program P on input I" Halting problem poly Math Truth A valid computation of a TM Time state Tape Contents Head 2 4 10 3 2 0 1 1 0 0 1 1 4 1011 3 1 2 1 1 0 0 1 1 Remove [,] Merge Digits ... ... 4 4 1101 1010 3 3 0011200110 0012110110 ... ... Math statement: "Program P halts on input I" " = C, "C is an integer encoding a valid halting computation for program P on input I" Halting problem poly Math Truth An integer C encoding a valid computation of a TM C = 41032011001141011312110011... 411013001120011041010300121101104... 4110320011101010 Math statement: "C is an integer encoding a valid halting computation = for program P on input I" "The initial config is that for program P on input I" "time t" "a legal program P step is taken" "The final config is halting for program P" An integer C encoding a valid computation of a TM C = 41032011001141011312110011... 411013001120011041010300121101104... 4110320011101010 Halting problem poly Math Truth Math statement: "time steps t" Halting problem poly Math Truth
= indexes i1<j1<k1<i2<j2<k2<i3"where the i digits are 4s, the j digits are 3s, the k digits are 2s, and every digit in between is 0 or 1." An integer C encoding a valid computation of a TM C = 41032011001141011312110011... 411013001120011041010300121101104... i j i j k k i 4110320011101010
1 1 1 2 2 2 3 Math statement: "time steps t" Halting problem poly Math Truth
= indexes i1<j1<k1<i2<j2<k2<i3 Cut out from index i1 to j1. An integer C encoding a valid computation of a TM C = 41032011001141011312110011... 411013001120011041010300121101104... i j i j k k i 4110320011101010
1 1 1 2 2 2 3 x = C/10j = 41032011001141011312110011...41101 y = C/10i1 10ij1 = 41032011001141011312110011...40000 xy = 1011 Math statement: "time steps t" Halting problem poly Math Truth
= indexes i1<j1<k1<i2<j2<k2<i3 "Cut out state, tape, head, digit at head" "Cut out next state, tape, head, digit at old head" An integer C encoding a valid computation of a TM C = 41032011001141011312110011... 411013001120011041010300121101104... i j i j k k i 4110320011101010
1 1 1 2 2 2 3 statet = 1101 tapet = 001100110 digit at headt = 0 statet+1 = 1101 tapet+1 = 001110110 digit at old headt+1 = 1 Math statement: "a legal program P step is taken" Halting problem poly Math Truth
= "Cell at head, head position, and state change according to P's finite rules" index i, "if cell has no head then no change to cell" An integer C encoding a valid computation of a TM C = 41032011001141011312110011... 411013001120011041010300121101104... 4110320011101010 statet = 1101 tapet = 001100110 digit at headt = 0 statet+1 = 1101 tapet+1 = 001110110 digit at old headt+1 = 1 Halting problem poly Math Truth
<P,I> Program P halts on input I or not Math statement: "Program P halts on input I" Math statement is true or not BUILD: Halting GIVEN: Oracle Math Proof Oracle Halting problem poly Math Truth Math Truth
Computable Exp
Halting Turing 1936 Poly Math Truth wrt Proof System
Computable Exp
Games Acceptable
Math Truth Halting Acceptable if on every yes input the machine halts Poly and gives the correct answer. on every no input the machine could halt and give the correct answer or could run for ever. The End ...
View
Full
Document
This note was uploaded on 02/13/2012 for the course CSE 4111 taught by Professor Edmonds during the Winter '12 term at York University.
 Winter '12
 Edmonds

Click to edit the document details