Theory of computation
- B. Srivathsan
Chennai Mathematical Institute
1/31
Theory of computation B. Srivathsan Chennai Mathematical Institute - - PowerPoint PPT Presentation
Theory of computation B. Srivathsan Chennai Mathematical Institute 1/31 http://www.cmi.ac.in/~sri/Courses/TOC2013 2/31 Why do this course? 3/31 Credits Contents of this talk are picked from / inspired by: Wikipedia Sipser:
Chennai Mathematical Institute
1/31
2/31
3/31
Contents of this talk are picked from / inspired by:
◮ Wikipedia ◮ Sipser: Introduction to the theory of computation ◮ Kleene: Introduction to metamathematics ◮ Emerson: The beginning of model-checking: A personal perspective ◮ Scott Aaronson’s course at MIT: Great ideas in theoretical CS
4/31
5/31
(Illustrations from Logicomix. Published by Bloomsbury) 6/31
7/31
7/31
Bertrand Russell (1872 - 1970)
7/31
8/31
David Hilbert (1862 - 1943)
Goal: convert Mathematics to mechanical manipulation of symbols
9/31
◮ There are infinitely many primes
∀q ∃p ∀x, y [ p > q ∧ (x, y > 1 → xy = p) ]
◮ Fermat’s last theorem
∀a, b, c, n [ (a, b, c > 0 ∧ n > 2) → an + bn = cn ]
◮ Twin prime conjecture
∀q ∃p ∀x, y [ p > q ∧ (x, y > 1 → (xy = p ∧ xy = p + 2) ) ]
10/31
◮ There are infinitely many primes
∀q ∃p ∀x, y [ p > q ∧ (x, y > 1 → xy = p) ]
◮ Fermat’s last theorem
∀a, b, c, n [ (a, b, c > 0 ∧ n > 2) → an + bn = cn ]
◮ Twin prime conjecture
∀q ∃p ∀x, y [ p > q ∧ (x, y > 1 → (xy = p ∧ xy = p + 2) ) ] Hilbert’s Entscheidungsproblem (1928) Is there an “algorithm” that can take such a mathematical statement as input and say if it is true or false?
10/31
Alonzo Church (1903 - 1995)
Alan Turing (1912 - 1954)
11/31
Intuitively, an algorithm meant “a process that determines the solution in a finite number of operations”
12/31
Intuitively, an algorithm meant “a process that determines the solution in a finite number of operations” Intuitive notion not adequate to show that an algorithm does not exist for a problem!
12/31
13/31
13/31
Advent of digital computers in the 40’s
13/31
14/31
15/31
16/31
Juris Hartmanis ( Born: 1928 ) Richard Stearns ( Born: 1936 )
17/31
Stephen Cook ( Born: 1939 ) Leonid Levin ( Born: 1948 ) Richard Karp ( Born: 1935 )
Identified an important class of intrinsically difficult problems An easy solution to one would give an easy solution to the other!
18/31
◮ Easy problems: sorting, finding shortest path in a graph ◮ Hard problems: scheduling classes for university
Computationally hard problems very important for cryptographers!
19/31
20/31
21/31
Computer programs (esp. large ones) are prone to ERRORS
22/31
Computer programs (esp. large ones) are prone to ERRORS Is there a way to specify formally what a program is intended to do, and verify automatically if the program satisfies the specification
22/31
Amir Pnueli ( 1941 - 2009 )
Introduced a formalism to specify intended behaviours of programs (1977)
23/31
Edmund Clarke ( Born: 1945 ) Allen Emerson ( Born: 1954 ) Joseph Sifakis ( Born: 1946 )
Automatically verify a program against its specification (1981)
24/31
25/31
25/31
This course: Theory of computation + bit of Computational complexity
25/31
26/31
◮ Is the sum of 5 and 8 equal to 12? ◮ Is 19 a prime number? ◮ Is the graph G1 connected?
27/31
28/31
28/31
28/31
28/31
2
2 3
29/31
1 2
30/31
1 2
30/31
1 2
30/31
Decision problem P Input instance Yes? No? Language L Input word w w ∈ L? w / ∈ L?
31/31
Decision problem P Input instance Yes? No?
ALGORITHM
Language L Input word w w ∈ L? w / ∈ L?
31/31
Decision problem P Input instance Yes? No?
ALGORITHM
Language L Input word w w ∈ L? w / ∈ L?
31/31
Decision problem P Input instance Yes? No?
ALGORITHM
Language L Input word w w ∈ L? w / ∈ L?
31/31
Decision problem P Input instance Yes? No?
ALGORITHM
Language L Input word w w ∈ L? w / ∈ L?
31/31