Theory of Computation
Aug - Dec 2024

Lectures

Following is an outline of lectures given along with references and links to additional reading.

Lec 1 (31 Jul, Wed) : (10-10.50 AM) Administrative information. A broad definition of computation. Examples. Role of theory of computing in sciences. Motivation for a study via two questions - (1) performing multiplication via table look up efficiently and (2) Ruler and Compass construction - Constructible numbers.

Reading : A detailed account of the connections between Theory of Computation to mathematics and other sciences is beautifully described in this book. Highly recommended !

Lec 2 (31 Jul, Wed) : (2-2.50 PM) Answering which numbers are constructible via ruler and compass constructions - details of performing arithmetic operations and computing square roots. Impossibility of computing cube roots (statement only). Historical context behind the study – contributions from Hilbert, Godel and Turing in formalizing the notion of effective computation.

Reading : Lec 1 [Kozen].

Lec 3 (01 Aug, Thu) : Recap, course overview and course objectives. Describing decision problems. Formal way of capturing decision problems via languages - Alphabets, Strings. Equivalence of decision problems and languages.

Reading : Lec 2,3 [Kozen].

Lec 4 (02 Aug, Fri) : Informal introduction to finite automata via modelling the functionality of an air conditioner. Sample problems ((1) checking if string is of even length, (2) has even number of ones, (3) only Boolean alphabets) and expressing them formally as languages and obtaining finite automata for them. Discussion on common issues/mistakes while describing finite automata for languages.

Reading : Lec 3 [Kozen].

Lec 5 (07 Aug, Wed) : (10-10.50 AM) Multiples of $3$ - over unary and binary alphabets. Representation as two languages along with description of finite automata for the two languages. Need for formal description and proof of correctness for the binary case.

Reading : Lec 3,4 [Kozen]

Additional References : Chap 2, Section 2.1 [Martin]

Lec 6 (07 Aug, Wed) : (2-2.50 PM) Formal definition of deterministic finite automata (DFA) as $5$-tuple. Meaning of determinism. Transition function and extended transition function. Defining the language accepted by a deterministic finite automata. Proof of correctness for DFA accepting strings over unary whose length is a multiples of $3$.

Reading : Lec 3,4 [Kozen]

Additional References : Chap 2, Section 2.1 [Martin]

Lec 7 (08 Aug, Thu) : (Non-evaluated) Tutorial session 1

Lec 8 (09 Aug, Fri) : Completed the proof of correctness of DFA accepting binary strings whose decimal value is a multiple of $3$. Product construction - an example and formal description. Using product construction for union and intersection of languages accepted by DFAs. More operations – Concatenation and reversal. Discussed the mind blocks in designing DFAs for concatenation of two languages and reversal of a language.

Reading : Lec 4 [Kozen]

Lec 9 (14 Aug, Wed) : Choice automata - introduction and worked out example - binary string whole third symbol from the right is a $1$. Working of a choice automata via choice trees. Condition for a choice automata to accept and reject. Informal introduction to non-determinism.

Reading : Lec 5 [Kozen]

Lec 10 (14 Aug, Wed) : Choice automata for strings of the form $wc$ where $w \in \Sigma^*$ and $c \in \Sigma$ with $\Sigma = \{0,1,2\}$. Informal argument for correctness. Formal definition of Non-deterministic Finite automata (NFA).

Reading : Lec 5 [Kozen]

Lec () (15 Aug, Thu) : Holiday due to Independence Day.

Lec 11 (16 Aug, Fri) : Two more examples of NFA construction. Arguing correctness of NFA accepting a language. Non-determinism in computation and its difference from randomness, parallelism and brute-force search. Illustrating non-determinism via run of a Coffee machine.

Reading : Lec 5 [Kozen]

Additional References : Chap 3, Section 3.2 [Martin]

Lec 12 (21 Aug, Wed) : Formal description of NFA for concatenation, reversal and argued correctness. Making non-deterministic finite automata deterministic - the subset construction. Idea behind the construction using pebbles.

Reading : Lec 5, 6 [Kozen]

Additional References : Chap 3, Section 3.3 [Martin]

Lec 13 (21 Aug, Wed) : Details of the Subset construction and a worked out example. Star closure of a language. NFA for constructing star closure. Introduction to regular languages.

Reading : Lec 6 [Kozen]

Additional References : Chap 3, Section 3.3 [Martin]

Lec 14 (22 Aug, Thu) : Tutorial 1 (Lectures 1 to 11)

Lec 15 (23 Aug, Fri) : Subset construction for handling $\epsilon$ transitions in NFA and taking epsilon-closure. Regular languages - definition and worked out examples. Regular expressions and Kleene Algebra.

Reading : Lec 7, 8 [Kozen]

Lec 16 (28 Aug, Wed) : (10-10.50 AM) Rules of Simplification. Using the rules to show that for any regular expression $\alpha$, $\alpha^*\alpha^*\equiv \alpha^*$. Arden’s Theorem (statement only). Using Arden’s theorem to obtain a regular expression from DFA. Worked out example for obtaining regular expression for equal number of $10$ and $01$.

Reading : Lec 9 [Kozen]

Lec 17 (28 Aug, Wed) : (2-2.50 PM) Obtaining NFA from a regular expression. Regular languages are precisely the languages accepted by DFAs. Worked out examples. Designing NFAs with lesser states - worked out examples. Writing regular expression directly for complement of languages - two worked out examples.

Reading : Lec 9 [Kozen]

Lec 18 (29 Aug, Thu) : Tutorial 2 (Lectures 12 to 15)

Lec 19 (30 Aug, Fri) : Kleene’s method of obtaining a regular expression from an NFA. A worked out example. Connection to transitive closure. Summary of closure properties of DFA, NFA and regular expression for operations - union, intersection, complementation, concatenation, star closure and reversal.

Reading : Lec 9 [Kozen]

Lec 20 (04 Sep, Wed) : Test 1 (8 – 8.50 AM)

Reading :

Lec 21 (04 Sep, Wed) : Limitations of finite automata. Pumping Lemma – statement and proof overview. Statement of Pumping lemma in the contra-positive form.

Reading : Lec 11 [Kozen]

Lec 22 (05 Sep, Thu) : Pumping lemma as a game against an adversary. Using game formulation of pumping lemma to show non-regularity of languages. Two worked out examples.

Reading : Lec 12 [Kozen]

Lec 23 (06 Sep, Fri) : The set $\{a^{n!} \mid n \ge 0\}$ is not regular. Using closure properties to show non-regularity of languages. Regularity as well as non-regularity need not hold under subset inclusion.

Reading : Lec 12 [Kozen]

Lec 24 (11 Sep, Wed) : (10-10.50 AM) Minimizing the number of states of a DFA. DFA minimization algorithm. Criteria for collapse of states. The collapsing algorithm, runtime and correctness. A worked out example. Minimal automata for a regular language and its uniqueness. Towards Myhill-Nerode relations and connection to minimization.

Reading : Lec 13, 14 [Kozen]

Lec 25 (11 Sep, Wed) : (2-2.50 PM) Criteria for collapse of states is an equivalence relation. Partitions and Equivalence relations - every equivalence relation induces a partition and every partition gives rise to an equivalence relation.

Reading : Lec 13, 14 [Kozen]

Lec 26 (12 Sep, Thu) : Obtaining an partition from a DFA. Defining equivalence relations based on the partition. Motivation for the definition of refinement and right congruence. Definition of a Myhill-Nerode relation. Describing a Myhill-Nerode relation from a DFA with no inaccessible states.

Reading : Lec 15 [Kozen]

Lec 27 (13 Sep, Fri) : Discussion on Test 1.

Reading :

Lec 28 (18 Sep, Wed) : (10-10.50 AM) Formal description of Myhill-Nerode relation from DFA (with no inaccessible states). Index of a Myhill-Nerode relation. The Myhill-Nerode relation from DFA is of finite index. Converse holds - from a Myhill-Nerode relation of finite index to a DFA A worked out example and a formal description. Comparing Myhill-Nerode relations.

Reading : Lec 15, 16 [Kozen]

Lec 29 (18 Sep, Wed) : (2-2.50 PM) Comparing Myhill-Nerode relations - examples. Definition of the coarsest Myhill-Nerode relation $\equiv_L$ for a language $L$. Proof that $\equiv_L$ is indeed the coarsest for any language $L$. Coarsest Myhill-Nerode relation for $L$ and minimal sized DFA for $L$.

Reading : Lec 15, 16 [Kozen]

Lec 30 (19 Sep, Thu) : Tutorial 3 (Lectures 21 to 26)

Lec () (20 Sep, Fri) : Class cancelled due to IAC 6.0. To be compensated.

Lec 31 (25 Sep, Wed) : (10-10.50 AM) Finding all the equivalence classes corresponding to $\equiv_L$ (coarsest Myhill-Nerode relation) for $L = (0+1)^*01$.

Reading : Class notes

Lec 32 (25 Sep, Wed) : (2-2.50 PM) Uses of coarsest Myhill-Nerode relation. (1) Proving non-regularity of languages using by showing that the coarsest Myhill-Nerode relation is not finite index. Two worked out examples. (2) Proving non-regularity of languages (3) Coarsest Myhill-Nerode relation $\equiv_L$ is same as the Myhill-Nerode relation that is obtained from a minimal DFA for a regular $L$. Completed proof of uniqueness of minimal DFA for a regular language. (4) Using coarsest Myhill-Nerode relation for $\equiv_L$ to show lower bounds on the size of any DFA for a regular $L$.

Reading : Lec 16 [Kozen]

Lec 33 (26 Sep, Thu) : Non-evaluated Tutorial session 2. Also discussed optimality of product construction and subset construction by exhibiting languages and showing lower bounds the number of equivalence classes for the coarsest Myhill-Nerode relation for those languages.

Lec 34 (27 Sep, Fri) : Review of models of computation. Introduction to Turing machines. Informal definition of Turing machines. A brief History - Hilbert’s formalist program and the Entscheidungsproblem. Justification for the model and a formal definition.

Reading : Lec 28 [Kozen], Turing’s original paper is very well written and worth a read ! An intuitive justification for the Turing model appears in Section 9 of the paper. For an inspiring talk on Alan Turing and his works, check this video.

Lec 35 (02 Oct, Wed) : (Compensatory lecture for September 20) Turing machines and need for the model. Encoding a Turing machine as string, Configurations, run of a Turing machine - accepting and rejecting configurations. Language accepted by a Turing machine.

Reading : Lec 28, 29 [Kozen]

Lec 36 (03 Oct, Thu) : Tutorial 4 (Lecture 26 to 33)

Lec 37 (04 Oct, Fri) : Total and partial Turing machines. Decidable and Semi-decidable languages. Examples of decidable problems. Turing machines as strings. Turing machines as input to Turing machines. Universal Turing machine. Undecidable problems. Halting problem ($\HP$) and Membership problem ($\MP$) are semi-decidable.

Reading : Lec 30, 31 [Kozen]

Lec 38 (09 Oct, Wed) : (10-10.50 AM) Proving undecidability of Halting problem via diagonalization. Intution behind the proof. Description of machine $N$ and the final contradiction argument.

Reading : Lec 31 [Kozen]

Lec 39 (09 Oct, Wed) : (2-2.50 PM) Closure properties of decidable languages under union, intersection and complementation. Closure properties of semi-decidable languages under union and intersection. Language is decidable if and only if the language and its complement are semi-decidable. The complement of $\HP$ is not even semi-decidable. Towards answering decidability/undecidability of the two problems - (1) checking if two programs behave the same way ($\EQ$) and (2) does a program have inaccessible code ($\USELESS$).

Reading : Lec 32 [Kozen]

Lec 40 (10 Oct, Thu) : Reductions. A toy problem to understand reductions - $\HP_{42}$. Using reduction to show undecidability of $\HP_{42}$.

Reading : Lec 33 [Kozen]

Lec () (11 Oct, Fri) : Holiday due to Dussehra.

Lec 41 (16 Oct, Wed) :

Reading :

Lec 42 (16 Oct, Wed) :

Reading :

Lec 43 (17 Oct, Thu) :

Reading :

Lec 44 (18 Oct, Fri) :

Reading :

Lec 45 (23 Oct, Wed) :

Reading :

Lec 46 (23 Oct, Wed) :

Reading :

Lec 47 (24 Oct, Thu) : Tutorial 5 (Lecture 37 to 44)

Reading :

Lec 48 (25 Oct, Fri) :

Reading :

Lec 49 (30 Oct, Wed) :

Reading :

Lec 50 (30 Oct, Wed) :

Reading :

Lec () (31 Oct, Thu) : Holiday due to Diwali.

Lec 51 (01 Nov, Fri) :

Reading :

Lec 52 (06 Nov, Wed) :

Reading :

Lec 53 (06 Nov, Wed) :

Reading :

Lec 54 (07 Nov, Thu) : Non-evaluated Tutorial session 3 (Lecture 41 to 53)

Reading :

Lec 55 (08 Nov, Fri) :

Reading :

Lec 56 (13 Nov, Wed) :

Reading :

Lec 57 (14 Nov, Thu) :

Reading :

Lec () (15 Nov, Fri) : Holiday due to Guru Nank Jayanti.