Theory of Computation
Aug - Nov 2022

Lectures

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

Lec 1 (16 Aug, Tue) : Administrative info. Computation and why study it.

Reading : Kozen Lec 1. For a broad perspective of the theory of computing, see Chapter 20 of this very nice book.

Lec 2 (17 Aug, Wed) : Languages versus problems. Alphabets, strings, the epsilon string, a word problem.

Reading : Kozen Lec 2.

Lec 3 (18 Aug, Thu) : Class cancelled for CS3050.

Reading :

Lec 4 (22 Aug, Mon) : Review of formulating problem as language. Examples - parity, graph reachability. Star closure.

Reading :

Lec 5 (23 Aug, Tue) : Class cancelled. To be compensated later.

Reading :

Lec 6 (24 Aug, Wed) : Automata as a computational model. Examples - two state system, counters, button as an automata. How to describe an automata ? Towards a formal definition.

Reading : Kozen Lec 3. Demo link to button as an automata.

Lec 7 (25 Aug, Thu) : Transition function, Extended transition function. Full formal definition. Why call ''finite'' automata ? Language accepted by a finite automata. Examples

Reading : Kozen Lec 3.

Lec 8 (29 Aug, Mon) : Designing a finite automata for the set of strings representing multiples of $3$ in binary. Proof of correctness by induction.

Reading : Kozen Lec 4.

Lec 9 (30 Aug, Tue) : Tutorial session 1

Reading : Lectures 1 through 8, solve pps1

Lec 10 (31 Aug, Wed) : Completed proof of correctness. Formally proving the language accepted by a finite automata using induction - a worked out example.

Reading :

Lec 11 (01 Sep, Thu) : Completed remaining part of the proof by induction. Designing automata for complement, intersection and union of languages

Reading : Kozen Lec 4.

Lec 12 (05 Sep, Mon) : Correctness argument for complement, intersection and union of languages accepted by DFA. Regular languages.

Reading : Kozen Lec 4.

Lec 13 (06 Sep, Tue) : Regular languages and regular expressions. Examples.

Reading : Hopcroft-Motwani-Ullman Chapter 3, section 3.1

Lec 14 (07 Sep, Wed) : Axiomatic rules for simplification of regular expressions - Kleene algebra. Worked out examples.

Reading : Kozen Lec 9. Hopcroft-Motwani-Ullman Chapter 3, section 3.4

Lec () (08 Sep, Thu) : Holiday due to Onam.

Lec 15 (12 Sep, Mon) : Towards equivalence of regular expressions and languages accepted by DFA - obtaining a regular expression from a DFA and using Kleene algebra for simplification.

Reading : Kozen Lec 9.

Lec 16 (13 Sep, Tue) : Class test 1

Reading :

Lec 17 (14 Sep, Wed) : Worked out examples for obtaining regular expression from DFA. Choice automata - introduction to non-determinism. Examples.

Reading : Kozen Lec 5.

Lec 18 (15 Sep, Thu) : Properties of NFA - closure under concatenation, Kleene closure and union. Obtaining an NFA from a regular expression. Examples.

Reading : Kozen Lec 8.

Lec 19 (19 Sep, Mon) : NFA for Kleene closure with examples and reason for failure of naive construction.

Reading : Kozen Lec 6.

Lec 20 (20 Sep, Tue) : Formal definition of NFA. Definitions of transition and extended transition functions.

Reading : Kozen Lec 6.

Lec 21 (21 Sep, Wed) : Quiz 1

Reading :

Lec 22 (22 Sep, Thu) : Making NFAs deterministic - the subset construction. Worked out example. Deterministic finite automata precisely accepts regular languages. What is non-determinism ? Computational tree view for choices.

Reading : Kozen Lec 6.

Lec 23 (26 Sep, Mon) : Non-determinism as guess followed by verification. Illustrated this by showing - if $A$ is regular, then $\mathsf{FirstHalves}(A)$ is also regular.

Reading : Kozen Lec 6, Question 26 - Miscellaneous exercises (page 322)

Lec 24 (27 Sep, Tue) : Completed NFA construction for $\mathsf{FirstHalves}(A)$ and argued correctness of the construction.

Reading : Kozen Question 26 - Miscellaneous exercises (page 322) and solution (page 358)

Lec 25 (28 Sep, Wed) : Limitations of finite automata - pumping lemma. Formal statement.

Reading : Kozen Lec 11

Lec 26 (29 Sep, Thu) : Pumping lemma as a game. Three worked out examples.

Reading : Kozen Lec 12

Lec () (03 Oct, Mon) : Recess break

Lec () (04 Oct, Tue) : Holiday due to Mahanavami.

Lec () (05 Oct, Wed) : Holiday due to Dussehra.

Lec 27 (06 Oct, Thu) : Completed worked out examples for pumping lemma. Using closure properties of regular languages in proving non-regularity.

Reading : Kozen Lec 12

Lec 28 (10 Oct, Mon) : DFA minimization algorithm. Quotient automata construction, minimality. An example.

Reading : Kozen Lec 14

Lec 29 (10 Oct, Mon) : (Compensatory lecture for Aug 23) Proof of correctness of the minimization algorithm.

Reading : Kozen Lec 14

Lec 30 (11 Oct, Tue) : Tutorial 2

Reading :

Lec 31 (12 Oct, Wed) : Completed the proof of correctness. Description of the minimal automata. Equivalence relations and partitions. States as equivalence classes.

Reading : Kozen Lec 13

Lec 32 (13 Oct, Thu) : Describing the quotient construction. Correctness of language acccepted. Relations over $\Sigma^*$ given DFAs for odd number of a's.

Reading : Kozen Lec 15

Lec 33 (17 Oct, Mon) : Obtaining equivalence relations from DFA. Right congruence and refinement property. Myhill-Nerode relations - definition.

Reading : Kozen Lec 15

Lec 34 (18 Oct, Tue) : Tutorial 3

Reading :

Lec 35 (19 Oct, Wed) : Myhill-Nerode relations - definitions, examples. Index of an equivalence relation. From Myhill-Nerode relations of finite index to DFA and back. Construction and correctness.

Reading : Kozen Lec 15

Lec 36 (20 Oct, Thu) : Comparing two Myhill-Nerode relations. Notion of Refinement. Coarse and fine relations wrt refinements. Finest and coarsest relations. Definition of $\equiv_L$ - coarsest Myhill-Nerode relation.

Reading : Kozen lec 16

Lec 37 (21 Oct, Fri) : (Compensatory class for Oct 25) Proof that $\equiv_L$ is the unique, coarsest Myhill-Nerode relation for a language $L$. An if and only if condition for a language to be regular - Myhill-Nerode theorem.

Reading : Kozen Lec 16

Lec 38 (21 Oct, Fri) : (Compensatory class for Oct 31, shorter session) For a regular $L$, using $\equiv_L$ to construct minimal automata. Proving non-regularity of languages. Examples.

Reading : Kozen Lec 16

Lec () (24 Oct, Mon) : Holiday due to Diwali.

Lec 39 (25 Oct, Tue) : Discussion session for problem sets, tutorials so far

Reading :

Lec 40 (26 Oct, Wed) : Quiz 2

Reading :

Lec 41 (27 Oct, Thu) : Introduction to context free languages (CFL). Regular languages are context free via an example. Examples - generator for calculator expressions, and regular expressions and programming languages. Parse trees and ambiguity.

Reading : Kozen Lec 19

Lec 42 (31 Oct, Mon) : Class cancelled.

Reading :

Lec 43 (01 Nov, Tue) : Formal definition of context free grammars (CFG). Language of a context free grammar, Production rules, Examples

Reading : Kozen Lec 19, 21

Lec 44 (02 Nov, Wed) : Normal forms- motivation and defition. Removing $\epsilon$-production rules and unit production rules. Chomsky normal form. Any context free grammar can be converted to Chomsky normal form. Worked out example.

Reading : Kozen Lec 21

Lec 45 (03 Nov, Thu) : Completed proof of correctness of obtaining a grammar in Chomsky normal form.

Reading : Kozen Lec 21

Lec 46 (07 Nov, Mon) : Closure properties of CFL. CFLs are not closed under intersection. Pumping lemma for context free languages

Reading : Kozen Lec 22 (for pumping lemma) and Lec 27 (for closure properties)

Lec () (08 Nov, Tue) : Holiday due to Guru Nanak Jayanti.

Lec 47 (09 Nov, Wed) : Statement of Pumping lemma and proof. The language $\{a^nb^na^n \mid n \ge 0\}$ is not context-free. Worked out example.

Reading : Kozen Lec 22, 23

Lec 48 (10 Nov, Thu) : Completed the worked out example. Back to closure properties. Why regular languages are context-free. Introduction to Push down automata. Push down automata can accept regular languages.

Reading : Kozen Lec 27

Lec 49 (14 Nov, Mon) : Tutorial 4

Reading :

Lec 50 (15 Nov, Tue) : Formal description of push down automata. Push down automata accepts precisely context free languages (statement). Intersection of context free language and regular language is context-free.

Reading : Kozen Lec 23

Lec 51 (16 Nov, Wed) : The CKY algorithm to check if a string belongs to a CFL.

Reading : Kozen Lec 27

Lec 52 (17 Nov, Thu) : Completed CKY algorithm. A short summary of the landscape so far. Notion of effective computability.

Reading : Kozen Lec 27, 28

Lec 53 (21 Nov, Mon) : Church-Turing thesis. Turing machines, Informal description and examples. Formally describing 1-tape Turing machines.

Reading : Kozen Lec 28

Lec 54 (22 Nov, Tue) : Tutorial 5

Reading :

Lec 55 (23 Nov, Wed) : Configurations, next configuration relation. Language accepted by a Turing machine. Accept, rejecting configurations. Halting and looping computations. Recursive and recursively enumerable languages - definitions.

Reading : Kozen Lec 28, 29

Lec 56 (24 Nov, Thu) : Variants of Turing machines - two tape, non-deterministic, two-way infinite and how they can simulate each other.

Reading : Kozen Lec 30

Lec 57 (28 Nov, Mon) : Properties of recursive and recursively enumerable sets. Universal Turing machines. Turing machines as strings.

Reading : Kozen Lec 31

Lec 58 (29 Nov, Tue) : Class Test 2

Reading :

Lec 59 (30 Nov, Wed) : Halting problem and membership problem. Proof of Undecidability of Halting problem via diagonalization.

Reading : Kozen Lec 31