Deterministic Finite Automata (DFAs)

Similar documents
Deterministic Finite Automata (DFAs)

Deterministic Finite Automata (DFAs)

Deterministic Finite Automata (DFAs)

Non-deterministic Finite Automata (NFAs)

CS 154, Lecture 3: DFA NFA, Regular Expressions

CS 154. Finite Automata, Nondeterminism, Regular Expressions

Let us first give some intuitive idea about a state of a system and state transitions before describing finite automata.

Turing Machines (TM) Deterministic Turing Machine (DTM) Nondeterministic Turing Machine (NDTM)

CS 154, Lecture 2: Finite Automata, Closure Properties Nondeterminism,

CSE 135: Introduction to Theory of Computation Nondeterministic Finite Automata (cont )

Recap DFA,NFA, DTM. Slides by Prof. Debasis Mitra, FIT.

Sri vidya college of engineering and technology

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

CISC 4090: Theory of Computation Chapter 1 Regular Languages. Section 1.1: Finite Automata. What is a computer? Finite automata

CS 154. Finite Automata vs Regular Expressions, Non-Regular Languages

Automata Theory. Lecture on Discussion Course of CS120. Runzhe SJTU ACM CLASS

Introduction to Turing Machines. Reading: Chapters 8 & 9

CS 154 Formal Languages and Computability Assignment #2 Solutions

Closure under the Regular Operations

CHAPTER 1 Regular Languages. Contents

Griffith University 3130CIT Theory of Computation (Based on slides by Harald Søndergaard of The University of Melbourne) Turing Machines 9-0

CS 455/555: Finite automata

Finite Automata. Finite Automata

Chapter 5. Finite Automata

CSE 135: Introduction to Theory of Computation Nondeterministic Finite Automata

1 More finite deterministic automata

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

Fooling Sets and. Lecture 5

Automata and Computability. Solutions to Exercises

Computational Models - Lecture 1 1

Course 4 Finite Automata/Finite State Machines

CSE 311 Lecture 23: Finite State Machines. Emina Torlak and Kevin Zatloukal

Equivalence of DFAs and NFAs

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

FINITE STATE AUTOMATA

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

Automata and Computability. Solutions to Exercises

Finite Automata. Mahesh Viswanathan

CS:4330 Theory of Computation Spring Regular Languages. Finite Automata and Regular Expressions. Haniel Barbosa

Formal Definition of Computation. August 28, 2013

Clarifications from last time. This Lecture. Last Lecture. CMSC 330: Organization of Programming Languages. Finite Automata.

Proofs, Strings, and Finite Automata. CS154 Chris Pollett Feb 5, 2007.

Deterministic Finite Automaton (DFA)

CSCI 2200 Foundations of Computer Science Spring 2018 Quiz 3 (May 2, 2018) SOLUTIONS

September 11, Second Part of Regular Expressions Equivalence with Finite Aut

Computational Models #1

CSE 105 Theory of Computation Professor Jeanne Ferrante

CSE 105 THEORY OF COMPUTATION

Languages, regular languages, finite automata

Great Theoretical Ideas in Computer Science. Lecture 4: Deterministic Finite Automaton (DFA), Part 2

CS243, Logic and Computation Nondeterministic finite automata

(Refer Slide Time: 0:21)

Finite Automata and Regular languages

GEETANJALI INSTITUTE OF TECHNICAL STUDIES, UDAIPUR I

Finite Automata. Seungjin Choi

Nondeterministic Finite Automata

Theory of Computation Lecture 1. Dr. Nahla Belal

Theory of Computation

T (s, xa) = T (T (s, x), a). The language recognized by M, denoted L(M), is the set of strings accepted by M. That is,

CSE 311: Foundations of Computing. Lecture 23: Finite State Machine Minimization & NFAs

Finite-State Machines (Automata) lecture 12

Closure Properties of Regular Languages. Union, Intersection, Difference, Concatenation, Kleene Closure, Reversal, Homomorphism, Inverse Homomorphism

CS21 Decidability and Tractability

Computer Sciences Department

Takeaway Notes: Finite State Automata

Computational Models: Class 1

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever. ETH Zürich (D-ITET) September,

CS 530: Theory of Computation Based on Sipser (second edition): Notes on regular languages(version 1.1)

Finite Automata and Languages

Closure under the Regular Operations

Finite-state machines (FSMs)

CS 322 D: Formal languages and automata theory

Lecture 3: Nondeterministic Finite Automata

NFA and regex. the Boolean algebra of languages. regular expressions. Informatics 1 School of Informatics, University of Edinburgh

Finite Automata. Wen-Guey Tzeng Computer Science Department National Chiao Tung University

Further discussion of Turing machines

Automata Theory for Presburger Arithmetic Logic

Extended transition function of a DFA

Languages. Non deterministic finite automata with ε transitions. First there was the DFA. Finite Automata. Non-Deterministic Finite Automata (NFA)

Java II Finite Automata I

Computability Theory

Finite Automata. Dr. Neil T. Dantam. Fall CSCI-561, Colorado School of Mines. Dantam (Mines CSCI-561) Finite Automata Fall / 35

CISC 4090 Theory of Computation

Theory of Computation p.1/?? Theory of Computation p.2/?? Unknown: Implicitly a Boolean variable: true if a word is

Nondeterminism and Epsilon Transitions

Foundations of

CS 121, Section 2. Week of September 16, 2013

Automata: a short introduction

CS4026 Formal Models of Computation

Examples of Regular Expressions. Finite Automata vs. Regular Expressions. Example of Using flex. Application

CS 154 Introduction to Automata and Complexity Theory

Context Free Languages and Grammars

COM364 Automata Theory Lecture Note 2 - Nondeterminism

CMP 309: Automata Theory, Computability and Formal Languages. Adapted from the work of Andrej Bogdanov

Introduction to the Theory of Computation. Automata 1VO + 1PS. Lecturer: Dr. Ana Sokolova.

Lecture 1: Finite State Automaton

Theory of Computation

CS 581: Introduction to the Theory of Computation! Lecture 1!

Assignment #2 COMP 3200 Spring 2012 Prof. Stucki

Nondeterministic Finite Automata

Transcription:

Algorithms & Models of Computation CS/ECE 374, Spring 29 Deterministic Finite Automata (DFAs) Lecture 3 Tuesday, January 22, 29 L A TEXed: December 27, 28 8:25 Chan, Har-Peled, Hassanieh (UIUC) CS374 Spring 29 / 36

Part I DFA Introduction Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

DFAs also called Finite State Machines (FSMs) The simplest model for computers? State machines that are common in practice. Vending machines Elevators Digital watches Simple network protocols Programs with fixed memory Chan, Har-Peled, Hassanieh (UIUC) CS374 3 Spring 29 3 / 36

A simple program Program to check if a given input string w has odd length int n = While input is not finished read next character c n n + endwhile If (n is odd) output YES Else output NO bit x = While input is not finished read next character c x flip(x) endwhile If (x = ) output YES Else output NO Chan, Har-Peled, Hassanieh (UIUC) CS374 4 Spring 29 4 / 36

A simple program Program to check if a given input string w has odd length int n = While input is not finished read next character c n n + endwhile If (n is odd) output YES Else output NO bit x = While input is not finished read next character c x flip(x) endwhile If (x = ) output YES Else output NO Chan, Har-Peled, Hassanieh (UIUC) CS374 4 Spring 29 4 / 36

Another view Machine has input written on a read-only tape Start in specified start state Start at left, scan symbol, change state and move right Circled states are accepting Machine accepts input string if it is in an accepting state after scanning the last symbol. Chan, Har-Peled, Hassanieh (UIUC) CS374 5 Spring 29 5 / 36

Graphical Representation/State Machine q3 q2, q q Directed graph with nodes representing states and edge/arcs representing transitions labeled by symbols in Σ For each state (vertex) q and symbol a Σ there is exactly one outgoing edge labeled by a Initial/start state has a pointer (or labeled as s, q or start ) Some states with double circles labeled as accepting/final states Chan, Har-Peled, Hassanieh (UIUC) CS374 6 Spring 29 6 / 36

Graphical Representation q q 3 q q 2, Where does lead?? Which strings end Figure up: indfa accepting M for problem state? 5 Can you prove it? Every string w has a unique walk that it follows from a given ange the state initial q by state reading to B? one letter of w from left to right. ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 7 Spring 29 7 / 36

Graphical Representation q q 3 q q 2, Where does lead?? Which strings end Figure up: indfa accepting M for problem state? 5 Can you prove it? Every string w has a unique walk that it follows from a given ange the state initial q by state reading to B? one letter of w from left to right. ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 7 Spring 29 7 / 36

Graphical Representation q q 3 q q 2, Where does lead?? Which strings end Figure up: indfa accepting M for problem state? 5 Can you prove it? Every string w has a unique walk that it follows from a given ange the state initial q by state reading to B? one letter of w from left to right. ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 7 Spring 29 7 / 36

Graphical Representation q q 3 q q 2, Where does lead?? Which strings end Figure up: indfa accepting M for problem state? 5 Can you prove it? Every string w has a unique walk that it follows from a given ange the state initial q by state reading to B? one letter of w from left to right. ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 7 Spring 29 7 / 36

Graphical Representation q q 3 q q 2, Definition A DFA M accepts Figure a string : wdfa iffmtheforunique problemwalk 5 starting at the start state and spelling out w ends in an accepting state. ange Definition the initial state to B? The language accepted (or recognized) by a DFA M is denote by L(M) and defined as: L(M) = {w M accepts w}. ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 8 Spring 29 8 / 36

Graphical Representation q q 3 q q 2, Definition A DFA M accepts Figure a string : wdfa iffmtheforunique problemwalk 5 starting at the start state and spelling out w ends in an accepting state. ange Definition the initial state to B? The language accepted (or recognized) by a DFA M is denote by L(M) and defined as: L(M) = {w M accepts w}. ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 8 Spring 29 8 / 36

Warning M accepts language L does not mean simply that that M accepts each string in L. It means that M accepts each string in L and no others. Equivalently M accepts each string in L and does not accept/rejects strings in Σ \ L. M recognizes L is a better term but accepts is widely accepted (and recognized) (joke attributed to Lenny Pitt) Chan, Har-Peled, Hassanieh (UIUC) CS374 9 Spring 29 9 / 36

Warning M accepts language L does not mean simply that that M accepts each string in L. It means that M accepts each string in L and no others. Equivalently M accepts each string in L and does not accept/rejects strings in Σ \ L. M recognizes L is a better term but accepts is widely accepted (and recognized) (joke attributed to Lenny Pitt) Chan, Har-Peled, Hassanieh (UIUC) CS374 9 Spring 29 9 / 36

Formal Tuple Notation Definition A deterministic finite automata (DFA) M = (Q, Σ, δ, s, A) is a five tuple where Q is a finite set whose elements are called states, Σ is a finite set called the input alphabet, δ : Q Σ Q is the transition function, s Q is the start state, A Q is the set of accepting/final states. Common alternate notation: q for start state, F for final states. Chan, Har-Peled, Hassanieh (UIUC) CS374 Spring 29 / 36

Formal Tuple Notation Definition A deterministic finite automata (DFA) M = (Q, Σ, δ, s, A) is a five tuple where Q is a finite set whose elements are called states, Σ is a finite set called the input alphabet, δ : Q Σ Q is the transition function, s Q is the start state, A Q is the set of accepting/final states. Common alternate notation: q for start state, F for final states. Chan, Har-Peled, Hassanieh (UIUC) CS374 Spring 29 / 36

Formal Tuple Notation Definition A deterministic finite automata (DFA) M = (Q, Σ, δ, s, A) is a five tuple where Q is a finite set whose elements are called states, Σ is a finite set called the input alphabet, δ : Q Σ Q is the transition function, s Q is the start state, A Q is the set of accepting/final states. Common alternate notation: q for start state, F for final states. Chan, Har-Peled, Hassanieh (UIUC) CS374 Spring 29 / 36

Formal Tuple Notation Definition A deterministic finite automata (DFA) M = (Q, Σ, δ, s, A) is a five tuple where Q is a finite set whose elements are called states, Σ is a finite set called the input alphabet, δ : Q Σ Q is the transition function, s Q is the start state, A Q is the set of accepting/final states. Common alternate notation: q for start state, F for final states. Chan, Har-Peled, Hassanieh (UIUC) CS374 Spring 29 / 36

Formal Tuple Notation Definition A deterministic finite automata (DFA) M = (Q, Σ, δ, s, A) is a five tuple where Q is a finite set whose elements are called states, Σ is a finite set called the input alphabet, δ : Q Σ Q is the transition function, s Q is the start state, A Q is the set of accepting/final states. Common alternate notation: q for start state, F for final states. Chan, Har-Peled, Hassanieh (UIUC) CS374 Spring 29 / 36

Formal Tuple Notation Definition A deterministic finite automata (DFA) M = (Q, Σ, δ, s, A) is a five tuple where Q is a finite set whose elements are called states, Σ is a finite set called the input alphabet, δ : Q Σ Q is the transition function, s Q is the start state, A Q is the set of accepting/final states. Common alternate notation: q for start state, F for final states. Chan, Har-Peled, Hassanieh (UIUC) CS374 Spring 29 / 36

Formal Tuple Notation Definition A deterministic finite automata (DFA) M = (Q, Σ, δ, s, A) is a five tuple where Q is a finite set whose elements are called states, Σ is a finite set called the input alphabet, δ : Q Σ Q is the transition function, s Q is the start state, A Q is the set of accepting/final states. Common alternate notation: q for start state, F for final states. Chan, Har-Peled, Hassanieh (UIUC) CS374 Spring 29 / 36

Formal Tuple Notation Definition A deterministic finite automata (DFA) M = (Q, Σ, δ, s, A) is a five tuple where Q is a finite set whose elements are called states, Σ is a finite set called the input alphabet, δ : Q Σ Q is the transition function, s Q is the start state, A Q is the set of accepting/final states. Common alternate notation: q for start state, F for final states. Chan, Har-Peled, Hassanieh (UIUC) CS374 Spring 29 / 36

DFA Notation M = set of all states transition func ( {}}{{}}{ Q, }{{} Σ, alphabet δ, s }{{} start state, set of all accept states {}}{ A ) Chan, Har-Peled, Hassanieh (UIUC) CS374 Spring 29 / 36

Example q q 3 q q 2, Q = {q, q, q, q 3 } Σ = {, } Figure : DFA M for problem 5 δ s = q ange the initial state to B? A = {q } ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

Example q q 3 q q 2, Q = {q, q, q, q 3 } Σ = {, } Figure : DFA M for problem 5 δ s = q ange the initial state to B? A = {q } ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

Example q q 3 q q 2, Q = {q, q, q, q 3 } Σ = {, } Figure : DFA M for problem 5 δ s = q ange the initial state to B? A = {q } ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

Example q q 3 q q 2, Q = {q, q, q, q 3 } Σ = {, } Figure : DFA M for problem 5 δ s = q ange the initial state to B? A = {q } ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

Example q q 3 q q 2, Q = {q, q, q, q 3 } Σ = {, } Figure : DFA M for problem 5 δ s = q ange the initial state to B? A = {q } ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

Example q q 3 q q 2, Q = {q, q, q, q 3 } Σ = {, } Figure : DFA M for problem 5 δ s = q ange the initial state to B? A = {q } ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

Example q q 3 q q 2, Q = {q, q, q, q 3 } Σ = {, } Figure : DFA M for problem 5 δ s = q ange the initial state to B? A = {q } ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

Example q q 3 q q 2, Q = {q, q, q, q 3 } Σ = {, } Figure : DFA M for problem 5 δ s = q ange the initial state to B? A = {q } ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

Example q q 3 q q 2, Q = {q, q, q, q 3 } Σ = {, } Figure : DFA M for problem 5 δ s = q ange the initial state to B? A = {q } ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

Extending the transition function to strings Given DFA M = (Q, Σ, δ, s, A), δ(q, a) is the state that M goes to from q on reading letter a Useful to have notation to specify the unique state that M will reach from q on reading string w Transition function δ : Q Σ Q defined inductively as follows: δ (q, w) = q if w = ɛ δ (q, w) = δ (δ(q, a), x) if w = ax. Chan, Har-Peled, Hassanieh (UIUC) CS374 3 Spring 29 3 / 36

Extending the transition function to strings Given DFA M = (Q, Σ, δ, s, A), δ(q, a) is the state that M goes to from q on reading letter a Useful to have notation to specify the unique state that M will reach from q on reading string w Transition function δ : Q Σ Q defined inductively as follows: δ (q, w) = q if w = ɛ δ (q, w) = δ (δ(q, a), x) if w = ax. Chan, Har-Peled, Hassanieh (UIUC) CS374 3 Spring 29 3 / 36

Formal definition of language accepted by M Definition The language L(M) accepted by a DFA M = (Q, Σ, δ, s, A) is {w Σ δ (s, w) A}. Chan, Har-Peled, Hassanieh (UIUC) CS374 4 Spring 29 4 / 36

Example q q 3 q q 2, What is: δ (q, ɛ) Figure : DFA M for problem 5 δ (q, ) δ (q, ) ange the δ initial (q 4, ) state to B? ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 5 Spring 29 5 / 36

Example continued q q 3 q q 2, What is L(M) if start state is changed to q? What is L(M) Figure if final/accept : DFA Mstates for problem are set5 to {q 2, q 3 } instead of {q }? ange the initial state to B? ange the set of final states to be {B} (with initial state A)? Chan, Har-Peled, Hassanieh (UIUC) CS374 6 Spring 29 6 / 36

Advantages of formal specification Necessary for proofs Necessary to specify abstractly for class of languages Exercise: Prove by induction that for any two strings u, v, any state q, δ (q, uv) = δ (δ (q, u), v). Chan, Har-Peled, Hassanieh (UIUC) CS374 7 Spring 29 7 / 36

Part II Constructing DFAs Chan, Har-Peled, Hassanieh (UIUC) CS374 8 Spring 29 8 / 36

DFAs: State = Memory How do we design a DFA M for a given language L? That is L(M) = L. DFA is a like a program that has fixed amount of memory independent of input size. The memory of a DFA is encoded in its states The state/memory must capture enough information from the input seen so far that it is sufficient for the suffix that is yet to be seen (note that DFA cannot go back) Chan, Har-Peled, Hassanieh (UIUC) CS374 9 Spring 29 9 / 36

DFA Construction: Example Assume Σ = {, } L =, L = Σ, L = {ɛ}, L = {}. L = {w {, } w is divisible by 5} L = {w {, } w ends with } L = {w {, } w contains as substring} L = {w {, } w contains or as substring} L = {w w has a k positions from the end} Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

DFA Construction: Example Assume Σ = {, } L =, L = Σ, L = {ɛ}, L = {}. L = {w {, } w is divisible by 5} L = {w {, } w ends with } L = {w {, } w contains as substring} L = {w {, } w contains or as substring} L = {w w has a k positions from the end} Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

DFA Construction: Example Assume Σ = {, } L =, L = Σ, L = {ɛ}, L = {}. L = {w {, } w is divisible by 5} L = {w {, } w ends with } L = {w {, } w contains as substring} L = {w {, } w contains or as substring} L = {w w has a k positions from the end} Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

DFA Construction: Example Assume Σ = {, } L =, L = Σ, L = {ɛ}, L = {}. L = {w {, } w is divisible by 5} L = {w {, } w ends with } L = {w {, } w contains as substring} L = {w {, } w contains or as substring} L = {w w has a k positions from the end} Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

DFA Construction: Example Assume Σ = {, } L =, L = Σ, L = {ɛ}, L = {}. L = {w {, } w is divisible by 5} L = {w {, } w ends with } L = {w {, } w contains as substring} L = {w {, } w contains or as substring} L = {w w has a k positions from the end} Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

DFA Construction: Example Assume Σ = {, } L =, L = Σ, L = {ɛ}, L = {}. L = {w {, } w is divisible by 5} L = {w {, } w ends with } L = {w {, } w contains as substring} L = {w {, } w contains or as substring} L = {w w has a k positions from the end} Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

DFA Construction: Example L = {Binary numbers congruent to mod 5} Example: = 7 = 2 mod 5, = = mod 5 Key observation: w mod 5 = a implies w mod 5 = 2a mod 5 and w mod 5 = (2a + ) mod 5 Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

DFA Construction: Example L = {Binary numbers congruent to mod 5} Example: = 7 = 2 mod 5, = = mod 5 Key observation: w mod 5 = a implies w mod 5 = 2a mod 5 and w mod 5 = (2a + ) mod 5 Chan, Har-Peled, Hassanieh (UIUC) CS374 2 Spring 29 2 / 36

Part III Product Construction and Closure Properties Chan, Har-Peled, Hassanieh (UIUC) CS374 22 Spring 29 22 / 36

Part IV Complement Chan, Har-Peled, Hassanieh (UIUC) CS374 23 Spring 29 23 / 36

Complement Question: If M is a DFA, is there a DFA M such that L(M ) = Σ \ L(M)? That is, are languages recognized by DFAs closed under complement? q3 q2, q q Chan, Har-Peled, Hassanieh (UIUC) CS374 24 Spring 29 24 / 36

Complement Example... Just flip the state of the states! q3 q2, q3 q2, q q q q Chan, Har-Peled, Hassanieh (UIUC) CS374 25 Spring 29 25 / 36

Complement Theorem Languages accepted by DFAs are closed under complement. Proof. Let M = (Q, Σ, δ, s, A) such that L = L(M). Let M = (Q, Σ, δ, s, Q \ A). Claim: L(M ) = L. Why? δ M = δ M. Thus, for every string w, δ M (s, w) = δ M (s, w). δ M (s, w) A δ M (s, w) Q \ A. δ M (s, w) A δ M (s, w) Q \ A. Chan, Har-Peled, Hassanieh (UIUC) CS374 26 Spring 29 26 / 36

Complement Theorem Languages accepted by DFAs are closed under complement. Proof. Let M = (Q, Σ, δ, s, A) such that L = L(M). Let M = (Q, Σ, δ, s, Q \ A). Claim: L(M ) = L. Why? δ M = δ M. Thus, for every string w, δ M (s, w) = δ M (s, w). δ M (s, w) A δ M (s, w) Q \ A. δ M (s, w) A δ M (s, w) Q \ A. Chan, Har-Peled, Hassanieh (UIUC) CS374 26 Spring 29 26 / 36

Complement Theorem Languages accepted by DFAs are closed under complement. Proof. Let M = (Q, Σ, δ, s, A) such that L = L(M). Let M = (Q, Σ, δ, s, Q \ A). Claim: L(M ) = L. Why? δ M = δ M. Thus, for every string w, δ M (s, w) = δ M (s, w). δ M (s, w) A δ M (s, w) Q \ A. δ M (s, w) A δ M (s, w) Q \ A. Chan, Har-Peled, Hassanieh (UIUC) CS374 26 Spring 29 26 / 36

Part V Product Construction Chan, Har-Peled, Hassanieh (UIUC) CS374 27 Spring 29 27 / 36

Union and Intersection Question: Are languages accepted by DFAs closed under union? That is, given DFAs M and M 2 is there a DFA that accepts L(M ) L(M 2 )? How about intersection L(M ) L(M 2 )? Idea from programming: on input string w Simulate M on w Simulate M 2 on w If both accept than w L(M ) L(M 2 ). If at least one accepts then w L(M ) L(M 2 ). Catch: We want a single DFA M that can only read w once. Solution: Simulate M and M 2 in parallel by keeping track of states of both machines Chan, Har-Peled, Hassanieh (UIUC) CS374 28 Spring 29 28 / 36

Union and Intersection Question: Are languages accepted by DFAs closed under union? That is, given DFAs M and M 2 is there a DFA that accepts L(M ) L(M 2 )? How about intersection L(M ) L(M 2 )? Idea from programming: on input string w Simulate M on w Simulate M 2 on w If both accept than w L(M ) L(M 2 ). If at least one accepts then w L(M ) L(M 2 ). Catch: We want a single DFA M that can only read w once. Solution: Simulate M and M 2 in parallel by keeping track of states of both machines Chan, Har-Peled, Hassanieh (UIUC) CS374 28 Spring 29 28 / 36

Union and Intersection Question: Are languages accepted by DFAs closed under union? That is, given DFAs M and M 2 is there a DFA that accepts L(M ) L(M 2 )? How about intersection L(M ) L(M 2 )? Idea from programming: on input string w Simulate M on w Simulate M 2 on w If both accept than w L(M ) L(M 2 ). If at least one accepts then w L(M ) L(M 2 ). Catch: We want a single DFA M that can only read w once. Solution: Simulate M and M 2 in parallel by keeping track of states of both machines Chan, Har-Peled, Hassanieh (UIUC) CS374 28 Spring 29 28 / 36

Union and Intersection Question: Are languages accepted by DFAs closed under union? That is, given DFAs M and M 2 is there a DFA that accepts L(M ) L(M 2 )? How about intersection L(M ) L(M 2 )? Idea from programming: on input string w Simulate M on w Simulate M 2 on w If both accept than w L(M ) L(M 2 ). If at least one accepts then w L(M ) L(M 2 ). Catch: We want a single DFA M that can only read w once. Solution: Simulate M and M 2 in parallel by keeping track of states of both machines Chan, Har-Peled, Hassanieh (UIUC) CS374 28 Spring 29 28 / 36

Example M accepts # = odd M 2 accepts # = odd Chan, Har-Peled, Hassanieh (UIUC) CS374 29 Spring 29 29 / 36

Example M accepts # = odd M 2 accepts # = odd Cross-product machine Chan, Har-Peled, Hassanieh (UIUC) CS374 3 Spring 29 3 / 36

Example II Accept all binary strings of length divisible by 3 and 5 2 3 4,, 2, 3, 4,,, 2, 3, 4, 2, 2, 2 2, 2 3, 2 4, 2 Assume all edges are labeled by,. Chan, Har-Peled, Hassanieh (UIUC) CS374 3 Spring 29 3 / 36

Product construction for intersection M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = A A 2 = {(q, q 2 ) q A, q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 29 32 / 36

Product construction for intersection M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = A A 2 = {(q, q 2 ) q A, q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 29 32 / 36

Product construction for intersection M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = A A 2 = {(q, q 2 ) q A, q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 29 32 / 36

Product construction for intersection M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = A A 2 = {(q, q 2 ) q A, q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 29 32 / 36

Product construction for intersection M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = A A 2 = {(q, q 2 ) q A, q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 29 32 / 36

Product construction for intersection M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = A A 2 = {(q, q 2 ) q A, q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 29 32 / 36

Product construction for intersection M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = A A 2 = {(q, q 2 ) q A, q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 29 32 / 36

Product construction for intersection M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = A A 2 = {(q, q 2 ) q A, q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 29 32 / 36

Product construction for intersection M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = A A 2 = {(q, q 2 ) q A, q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 29 32 / 36

Product construction for intersection M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = A A 2 = {(q, q 2 ) q A, q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 32 Spring 29 32 / 36

Correctness of construction Lemma For each string w, δ (s, w) = (δ (s, w), δ 2 (s 2, w)). Exercise: Assuming lemma prove the theorem in previous slide. Proof of lemma by induction on w Chan, Har-Peled, Hassanieh (UIUC) CS374 33 Spring 29 33 / 36

Correctness of construction Lemma For each string w, δ (s, w) = (δ (s, w), δ 2 (s 2, w)). Exercise: Assuming lemma prove the theorem in previous slide. Proof of lemma by induction on w Chan, Har-Peled, Hassanieh (UIUC) CS374 33 Spring 29 33 / 36

Correctness of construction Lemma For each string w, δ (s, w) = (δ (s, w), δ 2 (s 2, w)). Exercise: Assuming lemma prove the theorem in previous slide. Proof of lemma by induction on w Chan, Har-Peled, Hassanieh (UIUC) CS374 33 Spring 29 33 / 36

Product construction for union M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = {(q, q 2 ) q A or q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 34 Spring 29 34 / 36

Product construction for union M = (Q, Σ, δ, s, A ) and M 2 = (Q, Σ, δ 2, s 2, A 2 ) Create M = (Q, Σ, δ, s, A) where Q = Q Q 2 = {(q, q 2 ) q Q, q 2 Q 2 } s = (s, s 2 ) δ : Q Σ Q where δ((q, q 2 ), a) = (δ (q, a), δ 2 (q 2, a)) A = {(q, q 2 ) q A or q 2 A 2 } Theorem L(M) = L(M ) L(M 2 ). Chan, Har-Peled, Hassanieh (UIUC) CS374 34 Spring 29 34 / 36

Set Difference Theorem M, M 2 DFAs. There is a DFA M such that L(M) = L(M ) \ L(M 2 ). Exercise: Prove the above using two methods. Using a direct product construction Using closure under complement and intersection and union Chan, Har-Peled, Hassanieh (UIUC) CS374 35 Spring 29 35 / 36

Things to know: 2-way DFA Question: Why are DFAs required to only move right? Can we allow DFA to scan back and forth? Caveat: Tape is read-only so only memory is in machine s state. Can define a formal notion of a 2-way DFA Can show that any language recognized by a 2-way DFA can be recognized by a regular (-way) DFA Proof is tricky simulation via NFAs Chan, Har-Peled, Hassanieh (UIUC) CS374 36 Spring 29 36 / 36

Things to know: 2-way DFA Question: Why are DFAs required to only move right? Can we allow DFA to scan back and forth? Caveat: Tape is read-only so only memory is in machine s state. Can define a formal notion of a 2-way DFA Can show that any language recognized by a 2-way DFA can be recognized by a regular (-way) DFA Proof is tricky simulation via NFAs Chan, Har-Peled, Hassanieh (UIUC) CS374 36 Spring 29 36 / 36