Barber paradox. Created by logician Bertrand Russell. Barber - - PowerPoint PPT Presentation

barber paradox
SMART_READER_LITE
LIVE PREVIEW

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-1
SLIDE 1

Barber paradox.

Created by logician Bertrand Russell.

slide-2
SLIDE 2

Barber paradox.

Created by logician Bertrand Russell. Village with just 1 barber, all men clean-shaven.

slide-3
SLIDE 3

Barber paradox.

Created by logician Bertrand Russell. Village with just 1 barber, all men clean-shaven. Barber announces:

slide-4
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
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
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
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
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
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
SLIDE 10

Russell’s Paradox.

Naive Set Theory: Any definable collection is a set.

slide-11
SLIDE 11

Russell’s Paradox.

Naive Set Theory: Any definable collection is a set. ∃y ∀x (x ∈ y ⇐ ⇒ P(x)) (1)

slide-12
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
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
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
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
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
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
SLIDE 18

Is this stuff actually useful?

slide-19
SLIDE 19

Is this stuff actually useful?

Verify that my program is correct!

slide-20
SLIDE 20

Is this stuff actually useful?

Verify that my program is correct! Check that the compiler works!

slide-21
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
SLIDE 36

Implementing HALT.

slide-37
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
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
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
SLIDE 40

Halt does not exist.

slide-41
SLIDE 41

Halt does not exist.

HALT(P,I)

slide-42
SLIDE 42

Halt does not exist.

HALT(P,I) P - program

slide-43
SLIDE 43

Halt does not exist.

HALT(P,I) P - program I - input.

slide-44
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
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
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
SLIDE 47

Halt and Turing.

Proof:

slide-48
SLIDE 48

Halt and Turing.

Proof: Assume there is a program HALT(·,·).

slide-49
SLIDE 49

Halt and Turing.

Proof: Assume there is a program HALT(·,·). Turing(P)

slide-50
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
SLIDE 66

Another view of proof: diagonalization.

Any program is a fixed length string.

slide-67
SLIDE 67

Another view of proof: diagonalization.

Any program is a fixed length string. Fixed length strings are enumerable.

slide-68
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
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
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
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
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
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
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
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
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
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
SLIDE 78

Turing machine.

slide-79
SLIDE 79

Turing machine.

A Turing machine. – an (infinite) tape with characters

slide-80
SLIDE 80

Turing machine.

A Turing machine. – an (infinite) tape with characters – be in a state, and read a character

slide-81
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
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
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
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
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
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
SLIDE 87

Church, G¨

  • del and Turing.

Church proved an equivalent theorem. (Previously.)

slide-88
SLIDE 88

Church, G¨

  • del and Turing.

Church proved an equivalent theorem. (Previously.) Used λ calculus....

slide-89
SLIDE 89

Church, G¨

  • del and Turing.

Church proved an equivalent theorem. (Previously.) Used λ calculus....which is...

slide-90
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
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
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
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
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
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
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
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
SLIDE 98

Summary: computability.

Computer Programs are interesting objects.

slide-99
SLIDE 99

Summary: computability.

Computer Programs are interesting objects. Mathematical objects.

slide-100
SLIDE 100

Summary: computability.

Computer Programs are interesting objects. Mathematical objects. Formal Systems.

slide-101
SLIDE 101

Summary: computability.

Computer Programs are interesting objects. Mathematical objects. Formal Systems.

slide-102
SLIDE 102

Summary: computability.

Computer Programs are interesting objects. Mathematical objects. Formal Systems. Computer Programs cannot completely “understand” computer programs.

slide-103
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
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
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
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
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
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
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
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
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
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
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
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
SLIDE 115

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. Computation is a lens for other action in the world.