SLIDE 1
Barber paradox. Created by logician Bertrand Russell. Barber - - PowerPoint PPT Presentation
Barber paradox. Created by logician Bertrand Russell. Barber - - PowerPoint PPT Presentation
Barber paradox. Created by logician Bertrand Russell. Barber paradox. Created by logician Bertrand Russell. Village with just 1 barber, all men clean-shaven. Barber paradox. Created by logician Bertrand Russell. Village with just 1 barber,
SLIDE 2
SLIDE 3
Barber paradox.
Created by logician Bertrand Russell. Village with just 1 barber, all men clean-shaven. Barber announces:
SLIDE 4
Barber paradox.
Created by logician Bertrand Russell. Village with just 1 barber, all men clean-shaven. Barber announces: “I shave all and only those men who do not shave themselves.”
SLIDE 5
Barber paradox.
Created by logician Bertrand Russell. Village with just 1 barber, all men clean-shaven. Barber announces: “I shave all and only those men who do not shave themselves.” Who shaves the barber?
SLIDE 6
Barber paradox.
Created by logician Bertrand Russell. Village with just 1 barber, all men clean-shaven. Barber announces: “I shave all and only those men who do not shave themselves.” Who shaves the barber? Case 1: It’s the barber.
SLIDE 7
Barber paradox.
Created by logician Bertrand Russell. Village with just 1 barber, all men clean-shaven. Barber announces: “I shave all and only those men who do not shave themselves.” Who shaves the barber? Case 1: It’s the barber. Case 2: Somebody else.
SLIDE 8
Barber paradox.
Created by logician Bertrand Russell. Village with just 1 barber, all men clean-shaven. Barber announces: “I shave all and only those men who do not shave themselves.” Who shaves the barber? Case 1: It’s the barber. Case 2: Somebody else. Cannot answer that question in either case!
SLIDE 9
Barber paradox.
Created by logician Bertrand Russell. Village with just 1 barber, all men clean-shaven. Barber announces: “I shave all and only those men who do not shave themselves.” Who shaves the barber? Case 1: It’s the barber. Case 2: Somebody else. Cannot answer that question in either case! Paradox!!!
SLIDE 10
Russell’s Paradox.
Naive Set Theory: Any definable collection is a set.
SLIDE 11
Russell’s Paradox.
Naive Set Theory: Any definable collection is a set. ∃y ∀x (x ∈ y ⇐ ⇒ P(x)) (1)
SLIDE 12
Russell’s Paradox.
Naive Set Theory: Any definable collection is a set. ∃y ∀x (x ∈ y ⇐ ⇒ P(x)) (1) y is the set of elements that satisfies the proposition P(x).
SLIDE 13
Russell’s Paradox.
Naive Set Theory: Any definable collection is a set. ∃y ∀x (x ∈ y ⇐ ⇒ P(x)) (1) y is the set of elements that satisfies the proposition P(x). P(x) = x ∈ x.
SLIDE 14
Russell’s Paradox.
Naive Set Theory: Any definable collection is a set. ∃y ∀x (x ∈ y ⇐ ⇒ P(x)) (1) y is the set of elements that satisfies the proposition P(x). P(x) = x ∈ x. There exists a y that satisfies statement 1 for P(·).
SLIDE 15
Russell’s Paradox.
Naive Set Theory: Any definable collection is a set. ∃y ∀x (x ∈ y ⇐ ⇒ P(x)) (1) y is the set of elements that satisfies the proposition P(x). P(x) = x ∈ x. There exists a y that satisfies statement 1 for P(·). Take x = y.
SLIDE 16
Russell’s Paradox.
Naive Set Theory: Any definable collection is a set. ∃y ∀x (x ∈ y ⇐ ⇒ P(x)) (1) y is the set of elements that satisfies the proposition P(x). P(x) = x ∈ x. There exists a y that satisfies statement 1 for P(·). Take x = y. y ∈ y ⇐ ⇒ y ∈ y.
SLIDE 17
Russell’s Paradox.
Naive Set Theory: Any definable collection is a set. ∃y ∀x (x ∈ y ⇐ ⇒ P(x)) (1) y is the set of elements that satisfies the proposition P(x). P(x) = x ∈ x. There exists a y that satisfies statement 1 for P(·). Take x = y. y ∈ y ⇐ ⇒ y ∈ y. Oops!
SLIDE 18
Is this stuff actually useful?
SLIDE 19
Is this stuff actually useful?
Verify that my program is correct!
SLIDE 20
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works!
SLIDE 21
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input.
SLIDE 22
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I)
SLIDE 23
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program
SLIDE 24
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input.
SLIDE 25
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever.
SLIDE 26
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Notice:
SLIDE 27
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Notice: Need a computer
SLIDE 28
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Notice: Need a computer ...with the notion of a stored program!!!!
SLIDE 29
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Notice: Need a computer ...with the notion of a stored program!!!! (not an adding machine!
SLIDE 30
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Notice: Need a computer ...with the notion of a stored program!!!! (not an adding machine! not a person and an adding machine.)
SLIDE 31
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Notice: Need a computer ...with the notion of a stored program!!!! (not an adding machine! not a person and an adding machine.)
SLIDE 32
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Notice: Need a computer ...with the notion of a stored program!!!! (not an adding machine! not a person and an adding machine.) Program is a text string.
SLIDE 33
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Notice: Need a computer ...with the notion of a stored program!!!! (not an adding machine! not a person and an adding machine.) Program is a text string. Text string can be an input to a program.
SLIDE 34
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Notice: Need a computer ...with the notion of a stored program!!!! (not an adding machine! not a person and an adding machine.) Program is a text string. Text string can be an input to a program. Program can be an input to a program.
SLIDE 35
Is this stuff actually useful?
Verify that my program is correct! Check that the compiler works! How about.. Check that the compiler terminates on a certain input. HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Notice: Need a computer ...with the notion of a stored program!!!! (not an adding machine! not a person and an adding machine.) Program is a text string. Text string can be an input to a program. Program can be an input to a program.
SLIDE 36
Implementing HALT.
SLIDE 37
Implementing HALT.
HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever.
SLIDE 38
Implementing HALT.
HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Run P on I and check!
SLIDE 39
Implementing HALT.
HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Run P on I and check! How long do you wait?
SLIDE 40
Halt does not exist.
SLIDE 41
Halt does not exist.
HALT(P,I)
SLIDE 42
Halt does not exist.
HALT(P,I) P - program
SLIDE 43
Halt does not exist.
HALT(P,I) P - program I - input.
SLIDE 44
Halt does not exist.
HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever.
SLIDE 45
Halt does not exist.
HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Theorem: There is no program HALT.
SLIDE 46
Halt does not exist.
HALT(P,I) P - program I - input. Determines if P(I) (P run on I) halts or loops forever. Theorem: There is no program HALT. Proof Idea: Proof by contradiction, use self-reference.
SLIDE 47
Halt and Turing.
Proof:
SLIDE 48
Halt and Turing.
Proof: Assume there is a program HALT(·,·).
SLIDE 49
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
SLIDE 50
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
SLIDE 51
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
SLIDE 52
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT.
SLIDE 53
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT.
SLIDE 54
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing.
SLIDE 55
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing. Can run Turing on Turing!
SLIDE 56
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing. Can run Turing on Turing! Does Turing(Turing) halt?
SLIDE 57
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing. Can run Turing on Turing! Does Turing(Turing) halt? Turing(Turing) halts
SLIDE 58
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing. Can run Turing on Turing! Does Turing(Turing) halt? Turing(Turing) halts = ⇒ then HALT(Turing, Turing) = halts
SLIDE 59
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing. Can run Turing on Turing! Does Turing(Turing) halt? Turing(Turing) halts = ⇒ then HALT(Turing, Turing) = halts = ⇒ Turing(Turing) loops forever.
SLIDE 60
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing. Can run Turing on Turing! Does Turing(Turing) halt? Turing(Turing) halts = ⇒ then HALT(Turing, Turing) = halts = ⇒ Turing(Turing) loops forever. Turing(Turing) loops forever
SLIDE 61
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing. Can run Turing on Turing! Does Turing(Turing) halt? Turing(Turing) halts = ⇒ then HALT(Turing, Turing) = halts = ⇒ Turing(Turing) loops forever. Turing(Turing) loops forever = ⇒ then HALT(Turing, Turing) = halts
SLIDE 62
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing. Can run Turing on Turing! Does Turing(Turing) halt? Turing(Turing) halts = ⇒ then HALT(Turing, Turing) = halts = ⇒ Turing(Turing) loops forever. Turing(Turing) loops forever = ⇒ then HALT(Turing, Turing) = halts = ⇒ Turing(Turing) halts.
SLIDE 63
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing. Can run Turing on Turing! Does Turing(Turing) halt? Turing(Turing) halts = ⇒ then HALT(Turing, Turing) = halts = ⇒ Turing(Turing) loops forever. Turing(Turing) loops forever = ⇒ then HALT(Turing, Turing) = halts = ⇒ Turing(Turing) halts. Contradiction.
SLIDE 64
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing. Can run Turing on Turing! Does Turing(Turing) halt? Turing(Turing) halts = ⇒ then HALT(Turing, Turing) = halts = ⇒ Turing(Turing) loops forever. Turing(Turing) loops forever = ⇒ then HALT(Turing, Turing) = halts = ⇒ Turing(Turing) halts.
- Contradiction. Program HALT does not exist!
SLIDE 65
Halt and Turing.
Proof: Assume there is a program HALT(·,·). Turing(P)
- 1. If HALT(P
,P) =“halts”, then go into an infinite loop.
- 2. Otherwise, halt immediately.
Assumption: there is a program HALT. There is text that “is” the program HALT. There is text that is the program Turing. Can run Turing on Turing! Does Turing(Turing) halt? Turing(Turing) halts = ⇒ then HALT(Turing, Turing) = halts = ⇒ Turing(Turing) loops forever. Turing(Turing) loops forever = ⇒ then HALT(Turing, Turing) = halts = ⇒ Turing(Turing) halts.
- Contradiction. Program HALT does not exist!
SLIDE 66
Another view of proof: diagonalization.
Any program is a fixed length string.
SLIDE 67
Another view of proof: diagonalization.
Any program is a fixed length string. Fixed length strings are enumerable.
SLIDE 68
Another view of proof: diagonalization.
Any program is a fixed length string. Fixed length strings are enumerable. Program halts or not any input, which is a string.
SLIDE 69
Another view of proof: diagonalization.
Any program is a fixed length string. Fixed length strings are enumerable. Program halts or not any input, which is a string. P1 P2 P3 ··· P1 H H L ··· P2 L L H ··· P3 L H H ··· . . . . . . . . . . . . ...
SLIDE 70
Another view of proof: diagonalization.
Any program is a fixed length string. Fixed length strings are enumerable. Program halts or not any input, which is a string. P1 P2 P3 ··· P1 H H L ··· P2 L L H ··· P3 L H H ··· . . . . . . . . . . . . ... Halt(P ,P) - diagonal.
SLIDE 71
Another view of proof: diagonalization.
Any program is a fixed length string. Fixed length strings are enumerable. Program halts or not any input, which is a string. P1 P2 P3 ··· P1 H H L ··· P2 L L H ··· P3 L H H ··· . . . . . . . . . . . . ... Halt(P ,P) - diagonal. Turing - is not Halt.
SLIDE 72
Another view of proof: diagonalization.
Any program is a fixed length string. Fixed length strings are enumerable. Program halts or not any input, which is a string. P1 P2 P3 ··· P1 H H L ··· P2 L L H ··· P3 L H H ··· . . . . . . . . . . . . ... Halt(P ,P) - diagonal. Turing - is not Halt. and is different from every Pi on the diagonal.
SLIDE 73
Another view of proof: diagonalization.
Any program is a fixed length string. Fixed length strings are enumerable. Program halts or not any input, which is a string. P1 P2 P3 ··· P1 H H L ··· P2 L L H ··· P3 L H H ··· . . . . . . . . . . . . ... Halt(P ,P) - diagonal. Turing - is not Halt. and is different from every Pi on the diagonal. Turing is not on list.
SLIDE 74
Another view of proof: diagonalization.
Any program is a fixed length string. Fixed length strings are enumerable. Program halts or not any input, which is a string. P1 P2 P3 ··· P1 H H L ··· P2 L L H ··· P3 L H H ··· . . . . . . . . . . . . ... Halt(P ,P) - diagonal. Turing - is not Halt. and is different from every Pi on the diagonal. Turing is not on list. Turing is not a program.
SLIDE 75
Another view of proof: diagonalization.
Any program is a fixed length string. Fixed length strings are enumerable. Program halts or not any input, which is a string. P1 P2 P3 ··· P1 H H L ··· P2 L L H ··· P3 L H H ··· . . . . . . . . . . . . ... Halt(P ,P) - diagonal. Turing - is not Halt. and is different from every Pi on the diagonal. Turing is not on list. Turing is not a program. Turing can be constructed from Halt.
SLIDE 76
Another view of proof: diagonalization.
Any program is a fixed length string. Fixed length strings are enumerable. Program halts or not any input, which is a string. P1 P2 P3 ··· P1 H H L ··· P2 L L H ··· P3 L H H ··· . . . . . . . . . . . . ... Halt(P ,P) - diagonal. Turing - is not Halt. and is different from every Pi on the diagonal. Turing is not on list. Turing is not a program. Turing can be constructed from Halt. Halt does not exist!
SLIDE 77
Another view of proof: diagonalization.
Any program is a fixed length string. Fixed length strings are enumerable. Program halts or not any input, which is a string. P1 P2 P3 ··· P1 H H L ··· P2 L L H ··· P3 L H H ··· . . . . . . . . . . . . ... Halt(P ,P) - diagonal. Turing - is not Halt. and is different from every Pi on the diagonal. Turing is not on list. Turing is not a program. Turing can be constructed from Halt. Halt does not exist!
SLIDE 78
Turing machine.
SLIDE 79
Turing machine.
A Turing machine. – an (infinite) tape with characters
SLIDE 80
Turing machine.
A Turing machine. – an (infinite) tape with characters – be in a state, and read a character
SLIDE 81
Turing machine.
A Turing machine. – an (infinite) tape with characters – be in a state, and read a character – move left, right, and/or write a character.
SLIDE 82
Turing machine.
A Turing machine. – an (infinite) tape with characters – be in a state, and read a character – move left, right, and/or write a character. Universal Turing machine
SLIDE 83
Turing machine.
A Turing machine. – an (infinite) tape with characters – be in a state, and read a character – move left, right, and/or write a character. Universal Turing machine – an interpreter program for a Turing machine
SLIDE 84
Turing machine.
A Turing machine. – an (infinite) tape with characters – be in a state, and read a character – move left, right, and/or write a character. Universal Turing machine – an interpreter program for a Turing machine – where the tape could be a description of a ...
SLIDE 85
Turing machine.
A Turing machine. – an (infinite) tape with characters – be in a state, and read a character – move left, right, and/or write a character. Universal Turing machine – an interpreter program for a Turing machine – where the tape could be a description of a ... Turing machine!
SLIDE 86
Turing machine.
A Turing machine. – an (infinite) tape with characters – be in a state, and read a character – move left, right, and/or write a character. Universal Turing machine – an interpreter program for a Turing machine – where the tape could be a description of a ... Turing machine! Now that’s a computer!
SLIDE 87
Church, G¨
- del and Turing.
Church proved an equivalent theorem. (Previously.)
SLIDE 88
Church, G¨
- del and Turing.
Church proved an equivalent theorem. (Previously.) Used λ calculus....
SLIDE 89
Church, G¨
- del and Turing.
Church proved an equivalent theorem. (Previously.) Used λ calculus....which is...
SLIDE 90
Church, G¨
- del and Turing.
Church proved an equivalent theorem. (Previously.) Used λ calculus....which is... a programming language!!! Just like Python, C, Javascript, ....
SLIDE 91
Church, G¨
- del and Turing.
Church proved an equivalent theorem. (Previously.) Used λ calculus....which is... a programming language!!! Just like Python, C, Javascript, .... G¨
- del: Incompleteness theorem.
SLIDE 92
Church, G¨
- del and Turing.
Church proved an equivalent theorem. (Previously.) Used λ calculus....which is... a programming language!!! Just like Python, C, Javascript, .... G¨
- del: Incompleteness theorem.
Any formal system either is inconsistent or incomplete.
SLIDE 93
Church, G¨
- del and Turing.
Church proved an equivalent theorem. (Previously.) Used λ calculus....which is... a programming language!!! Just like Python, C, Javascript, .... G¨
- del: Incompleteness theorem.
Any formal system either is inconsistent or incomplete. Inconsistent: A false sentence can be proven.
SLIDE 94
Church, G¨
- del and Turing.
Church proved an equivalent theorem. (Previously.) Used λ calculus....which is... a programming language!!! Just like Python, C, Javascript, .... G¨
- del: Incompleteness theorem.
Any formal system either is inconsistent or incomplete. Inconsistent: A false sentence can be proven. Incomplete: There is no proof for some sentence in the system.
SLIDE 95
Church, G¨
- del and Turing.
Church proved an equivalent theorem. (Previously.) Used λ calculus....which is... a programming language!!! Just like Python, C, Javascript, .... G¨
- del: Incompleteness theorem.
Any formal system either is inconsistent or incomplete. Inconsistent: A false sentence can be proven. Incomplete: There is no proof for some sentence in the system. Along the way: “built” computers out of arithmetic.
SLIDE 96
Church, G¨
- del and Turing.
Church proved an equivalent theorem. (Previously.) Used λ calculus....which is... a programming language!!! Just like Python, C, Javascript, .... G¨
- del: Incompleteness theorem.
Any formal system either is inconsistent or incomplete. Inconsistent: A false sentence can be proven. Incomplete: There is no proof for some sentence in the system. Along the way: “built” computers out of arithmetic. Showed that every mathematical statement corresponds to an
SLIDE 97
Church, G¨
- del and Turing.
Church proved an equivalent theorem. (Previously.) Used λ calculus....which is... a programming language!!! Just like Python, C, Javascript, .... G¨
- del: Incompleteness theorem.
Any formal system either is inconsistent or incomplete. Inconsistent: A false sentence can be proven. Incomplete: There is no proof for some sentence in the system. Along the way: “built” computers out of arithmetic. Showed that every mathematical statement corresponds to an ....natural number!!!!
SLIDE 98
Summary: computability.
Computer Programs are interesting objects.
SLIDE 99
Summary: computability.
Computer Programs are interesting objects. Mathematical objects.
SLIDE 100
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems.
SLIDE 101
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems.
SLIDE 102
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs.
SLIDE 103
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS.
SLIDE 104
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS. Proof Idea:
SLIDE 105
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS. Proof Idea: Diagonalization.
SLIDE 106
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS. Proof Idea: Diagonalization. Program: Turing (or DIAGONAL) takes P.
SLIDE 107
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS. Proof Idea: Diagonalization. Program: Turing (or DIAGONAL) takes P. Assume there is HALT.
SLIDE 108
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS. Proof Idea: Diagonalization. Program: Turing (or DIAGONAL) takes P. Assume there is HALT. DIAGONAL flips answer.
SLIDE 109
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS. Proof Idea: Diagonalization. Program: Turing (or DIAGONAL) takes P. Assume there is HALT. DIAGONAL flips answer. Loops if P halts, halts if P loops.
SLIDE 110
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS. Proof Idea: Diagonalization. Program: Turing (or DIAGONAL) takes P. Assume there is HALT. DIAGONAL flips answer. Loops if P halts, halts if P loops. What does Turing do on turing?
SLIDE 111
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS. Proof Idea: Diagonalization. Program: Turing (or DIAGONAL) takes P. Assume there is HALT. DIAGONAL flips answer. Loops if P halts, halts if P loops. What does Turing do on turing? Doesn’t loop or HALT.
SLIDE 112
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS. Proof Idea: Diagonalization. Program: Turing (or DIAGONAL) takes P. Assume there is HALT. DIAGONAL flips answer. Loops if P halts, halts if P loops. What does Turing do on turing? Doesn’t loop or HALT. HALT does not exist!
SLIDE 113
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS. Proof Idea: Diagonalization. Program: Turing (or DIAGONAL) takes P. Assume there is HALT. DIAGONAL flips answer. Loops if P halts, halts if P loops. What does Turing do on turing? Doesn’t loop or HALT. HALT does not exist!
SLIDE 114
Summary: computability.
Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs. Example: no computer program can tell if any other computer program HALTS. Proof Idea: Diagonalization. Program: Turing (or DIAGONAL) takes P. Assume there is HALT. DIAGONAL flips answer. Loops if P halts, halts if P loops. What does Turing do on turing? Doesn’t loop or HALT. HALT does not exist! More on this topic in CS 172.
SLIDE 115