nfas continued, closure properties of regular languages

76
CS/ECE 374: Algorithms & Models of Computation, Fall 2018 NFAs continued, Closure Properties of Regular Languages Lecture 5 September 11, 2018 Nikita Borisov (UIUC) CS/ECE 374 1 Fall 2018 1 / 49

Upload: others

Post on 24-Jan-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NFAs continued, Closure Properties of Regular Languages

CS/ECE 374: Algorithms & Models of

Computation, Fall 2018

NFAs continued, ClosureProperties of RegularLanguagesLecture 5September 11, 2018

Nikita Borisov (UIUC) CS/ECE 374 1 Fall 2018 1 / 49

Page 2: NFAs continued, Closure Properties of Regular Languages

Regular Languages, DFAs, NFAs

TheoremLanguages accepted by DFAs, NFAs, and regular expressions are thesame.

DFAs are special cases of NFAs (trivial)

NFAs accept regular expressions (today)

DFAs accept languages accepted by NFAs (today)

Regular expressions for languages accepted by DFAs (later in thecourse)

Nikita Borisov (UIUC) CS/ECE 374 2 Fall 2018 2 / 49

Page 3: NFAs continued, Closure Properties of Regular Languages

Regular Languages, DFAs, NFAs

TheoremLanguages accepted by DFAs, NFAs, and regular expressions are thesame.

DFAs are special cases of NFAs (trivial)

NFAs accept regular expressions (today)

DFAs accept languages accepted by NFAs (today)

Regular expressions for languages accepted by DFAs (later in thecourse)

Nikita Borisov (UIUC) CS/ECE 374 2 Fall 2018 2 / 49

Page 4: NFAs continued, Closure Properties of Regular Languages

Part I

Closure Properties of NFAs

Nikita Borisov (UIUC) CS/ECE 374 3 Fall 2018 3 / 49

Page 5: NFAs continued, Closure Properties of Regular Languages

A simple transformation

TheoremFor every NFA N there is another NFA N ′ such that L(N) = L(N ′)and such that N ′ has the following two properties:

N ′ has single final state f that has no outgoing transitions

The start state s of N is different from f

Nikita Borisov (UIUC) CS/ECE 374 4 Fall 2018 4 / 49

Page 6: NFAs continued, Closure Properties of Regular Languages

Closure Properties of NFAs

Are the class of languages accepted by NFAs closed under thefollowing operations?

union

intersection

concatenation

Kleene star

complement

Nikita Borisov (UIUC) CS/ECE 374 5 Fall 2018 5 / 49

Page 7: NFAs continued, Closure Properties of Regular Languages

Example

3, 7, 4 3, 7, 4

3 7 4

All strings that contain the substring 374

3, 7, 4 3, 7, 4

4 7 3

All strings that contain the substring 473

Nikita Borisov (UIUC) CS/ECE 374 6 Fall 2018 6 / 49

Page 8: NFAs continued, Closure Properties of Regular Languages

Example

3, 7, 4 3, 7, 4

3 7 4

All strings that contain the substring 374

3, 7, 4 3, 7, 4

4 7 3

All strings that contain the substring 473

Nikita Borisov (UIUC) CS/ECE 374 6 Fall 2018 6 / 49

Page 9: NFAs continued, Closure Properties of Regular Languages

Example II

3, 7, 4 3, 7, 4

3 7 4

3, 7, 4 3, 7, 4

4 7 3

ϵ

ϵ

All strings that contain either 374 or 473

Nikita Borisov (UIUC) CS/ECE 374 7 Fall 2018 7 / 49

Page 10: NFAs continued, Closure Properties of Regular Languages

Closure under union

TheoremFor any two NFAs N1 and N2 there is a NFA N such thatL(N) = L(N1) ∪ L(N2).

q1 f1N1

q2 f2N2

Nikita Borisov (UIUC) CS/ECE 374 8 Fall 2018 8 / 49

Page 11: NFAs continued, Closure Properties of Regular Languages

Closure under union

TheoremFor any two NFAs N1 and N2 there is a NFA N such thatL(N) = L(N1) ∪ L(N2).

q1 f1N1

q2 f2N2

Nikita Borisov (UIUC) CS/ECE 374 8 Fall 2018 8 / 49

Page 12: NFAs continued, Closure Properties of Regular Languages

Closure under concatenation

TheoremFor any two NFAs N1 and N2 there is a NFA N such thatL(N) = L(N1)·L(N2).

q1 f1N1 q2 f2N2

Nikita Borisov (UIUC) CS/ECE 374 9 Fall 2018 9 / 49

Page 13: NFAs continued, Closure Properties of Regular Languages

Closure under concatenation

TheoremFor any two NFAs N1 and N2 there is a NFA N such thatL(N) = L(N1)·L(N2).

q1 f1N1 q2 f2N2

Nikita Borisov (UIUC) CS/ECE 374 9 Fall 2018 9 / 49

Page 14: NFAs continued, Closure Properties of Regular Languages

Closure under Kleene star

TheoremFor any NFA N1 there is a NFA N such that L(N) = (L(N1))∗.

q1 f1N1

Nikita Borisov (UIUC) CS/ECE 374 10 Fall 2018 10 / 49

Page 15: NFAs continued, Closure Properties of Regular Languages

Closure under Kleene star

TheoremFor any NFA N1 there is a NFA N such that L(N) = (L(N1))∗.

q1 f1N1

ε

Does not work! Why?

Nikita Borisov (UIUC) CS/ECE 374 11 Fall 2018 11 / 49

Page 16: NFAs continued, Closure Properties of Regular Languages

Closure under Kleene star

TheoremFor any NFA N1 there is a NFA N such that L(N) = (L(N1))∗.

q1 f1N1

ε

Does not work! Why?Nikita Borisov (UIUC) CS/ECE 374 11 Fall 2018 11 / 49

Page 17: NFAs continued, Closure Properties of Regular Languages

Closure under Kleene star

TheoremFor any NFA N1 there is a NFA N such that L(N) = (L(N1))∗.

q1 f1N1q0ε

ε

Nikita Borisov (UIUC) CS/ECE 374 12 Fall 2018 12 / 49

Page 18: NFAs continued, Closure Properties of Regular Languages

Part II

NFAs capture Regular Languages

Nikita Borisov (UIUC) CS/ECE 374 13 Fall 2018 13 / 49

Page 19: NFAs continued, Closure Properties of Regular Languages

Regular Languages Recap

Regular Languages Regular Expressions

∅ regular ∅ denotes ∅{ε} regular ε denotes {ε}{a} regular for a ∈ Σ a denote {a}R1 ∪ R2 regular if both are r1 + r2 denotes R1 ∪ R2

R1R2 regular if both are r1r2 denotes R1R2

R∗ is regular if R is r∗ denote R∗

Regular expressions denote regular languages — they explicitly showthe operations that were used to form the language

Nikita Borisov (UIUC) CS/ECE 374 14 Fall 2018 14 / 49

Page 20: NFAs continued, Closure Properties of Regular Languages

NFAs and Regular Language

TheoremFor every regular language L there is an NFA N such that L = L(N).

Proof strategy:

For every regular expression r show that there is a NFA N suchthat L(r) = L(N)

Induction on length of r

Nikita Borisov (UIUC) CS/ECE 374 15 Fall 2018 15 / 49

Page 21: NFAs continued, Closure Properties of Regular Languages

NFAs and Regular Language

For every regular expression r show that there is a NFA N suchthat L(r) = L(N)

Induction on length of r

Base cases: ∅, ε, a for a ∈ Σ

Nikita Borisov (UIUC) CS/ECE 374 16 Fall 2018 16 / 49

Page 22: NFAs continued, Closure Properties of Regular Languages

NFAs and Regular Language

For every regular expression r show that there is a NFA N suchthat L(r) = L(N)

Induction on length of r

Inductive cases:

r1, r2 regular expressions and r = r1 + r2.

By induction there are NFAs N1,N2 s.tL(N1) = L(r1) and L(N2) = L(r2). We have already seen thatthere is NFA N s.t L(N) = L(N1) ∪ L(N2), henceL(N) = L(r)

r = r1·r2. Use closure of NFA languages under concatenation

r = (r1)∗. Use closure of NFA languages under Kleene star

Nikita Borisov (UIUC) CS/ECE 374 17 Fall 2018 17 / 49

Page 23: NFAs continued, Closure Properties of Regular Languages

NFAs and Regular Language

For every regular expression r show that there is a NFA N suchthat L(r) = L(N)

Induction on length of r

Inductive cases:

r1, r2 regular expressions and r = r1 + r2.By induction there are NFAs N1,N2 s.tL(N1) = L(r1) and L(N2) = L(r2).

We have already seen thatthere is NFA N s.t L(N) = L(N1) ∪ L(N2), henceL(N) = L(r)

r = r1·r2. Use closure of NFA languages under concatenation

r = (r1)∗. Use closure of NFA languages under Kleene star

Nikita Borisov (UIUC) CS/ECE 374 17 Fall 2018 17 / 49

Page 24: NFAs continued, Closure Properties of Regular Languages

NFAs and Regular Language

For every regular expression r show that there is a NFA N suchthat L(r) = L(N)

Induction on length of r

Inductive cases:

r1, r2 regular expressions and r = r1 + r2.By induction there are NFAs N1,N2 s.tL(N1) = L(r1) and L(N2) = L(r2). We have already seen thatthere is NFA N s.t L(N) = L(N1) ∪ L(N2), henceL(N) = L(r)

r = r1·r2. Use closure of NFA languages under concatenation

r = (r1)∗. Use closure of NFA languages under Kleene star

Nikita Borisov (UIUC) CS/ECE 374 17 Fall 2018 17 / 49

Page 25: NFAs continued, Closure Properties of Regular Languages

NFAs and Regular Language

For every regular expression r show that there is a NFA N suchthat L(r) = L(N)

Induction on length of r

Inductive cases:

r1, r2 regular expressions and r = r1 + r2.By induction there are NFAs N1,N2 s.tL(N1) = L(r1) and L(N2) = L(r2). We have already seen thatthere is NFA N s.t L(N) = L(N1) ∪ L(N2), henceL(N) = L(r)

r = r1·r2.

Use closure of NFA languages under concatenation

r = (r1)∗. Use closure of NFA languages under Kleene star

Nikita Borisov (UIUC) CS/ECE 374 17 Fall 2018 17 / 49

Page 26: NFAs continued, Closure Properties of Regular Languages

NFAs and Regular Language

For every regular expression r show that there is a NFA N suchthat L(r) = L(N)

Induction on length of r

Inductive cases:

r1, r2 regular expressions and r = r1 + r2.By induction there are NFAs N1,N2 s.tL(N1) = L(r1) and L(N2) = L(r2). We have already seen thatthere is NFA N s.t L(N) = L(N1) ∪ L(N2), henceL(N) = L(r)

r = r1·r2. Use closure of NFA languages under concatenation

r = (r1)∗. Use closure of NFA languages under Kleene star

Nikita Borisov (UIUC) CS/ECE 374 17 Fall 2018 17 / 49

Page 27: NFAs continued, Closure Properties of Regular Languages

NFAs and Regular Language

For every regular expression r show that there is a NFA N suchthat L(r) = L(N)

Induction on length of r

Inductive cases:

r1, r2 regular expressions and r = r1 + r2.By induction there are NFAs N1,N2 s.tL(N1) = L(r1) and L(N2) = L(r2). We have already seen thatthere is NFA N s.t L(N) = L(N1) ∪ L(N2), henceL(N) = L(r)

r = r1·r2. Use closure of NFA languages under concatenation

r = (r1)∗.

Use closure of NFA languages under Kleene star

Nikita Borisov (UIUC) CS/ECE 374 17 Fall 2018 17 / 49

Page 28: NFAs continued, Closure Properties of Regular Languages

NFAs and Regular Language

For every regular expression r show that there is a NFA N suchthat L(r) = L(N)

Induction on length of r

Inductive cases:

r1, r2 regular expressions and r = r1 + r2.By induction there are NFAs N1,N2 s.tL(N1) = L(r1) and L(N2) = L(r2). We have already seen thatthere is NFA N s.t L(N) = L(N1) ∪ L(N2), henceL(N) = L(r)

r = r1·r2. Use closure of NFA languages under concatenation

r = (r1)∗. Use closure of NFA languages under Kleene star

Nikita Borisov (UIUC) CS/ECE 374 17 Fall 2018 17 / 49

Page 29: NFAs continued, Closure Properties of Regular Languages

Example

(ε+0)(1+10)*

(ε+0) (1+10)*

ε

0(1+10) *

Nikita Borisov (UIUC) CS/ECE 374 18 Fall 2018 18 / 49

Page 30: NFAs continued, Closure Properties of Regular Languages

Example

ε

0(1+10) *

ε

0 1*10

ε

01

*1 0

Nikita Borisov (UIUC) CS/ECE 374 19 Fall 2018 19 / 49

Page 31: NFAs continued, Closure Properties of Regular Languages

Example

ε

01

*1 0

0 1

ε

0

ε 42

3

1

1 0

ε

Final NFA simplified slightly to reduce statesNikita Borisov (UIUC) CS/ECE 374 20 Fall 2018 20 / 49

Page 32: NFAs continued, Closure Properties of Regular Languages

Part III

Equivalence of NFAs and DFAs

Nikita Borisov (UIUC) CS/ECE 374 21 Fall 2018 21 / 49

Page 33: NFAs continued, Closure Properties of Regular Languages

Equivalence of NFAs and DFAs

TheoremFor every NFA N there is a DFA M such that L(M) = L(N).

Nikita Borisov (UIUC) CS/ECE 374 22 Fall 2018 22 / 49

Page 34: NFAs continued, Closure Properties of Regular Languages

Formal Tuple Notation for NFA

DefinitionA non-deterministic finite automata (NFA) N = (Q,Σ, δ, s,A) is afive tuple where

Q is a finite set whose elements are called states,

Σ is a finite set called the input alphabet,

δ : Q × Σ ∪ {ε} → P(Q) is the transition function (hereP(Q) is the power set of Q),

s ∈ Q is the start state,

A ⊆ Q is the set of accepting/final states.

δ(q, a) for a ∈ Σ ∪ {ε} is a susbet of Q — a set of states.

Nikita Borisov (UIUC) CS/ECE 374 23 Fall 2018 23 / 49

Page 35: NFAs continued, Closure Properties of Regular Languages

Extending the transition function to strings

DefinitionFor NFA N = (Q,Σ, δ, s,A) and q ∈ Q the εreach(q) is the setof all states that q can reach using only ε-transitions.

DefinitionInductive definition of δ∗ : Q × Σ∗ → P(Q):

if w = ε, δ∗(q,w) = εreach(q)

if w = a where a ∈ Σδ∗(q, a) = ∪p∈εreach(q)(∪r∈δ(p,a)εreach(r))

if w = xa,δ∗(q,w) = ∪p∈δ∗(q,x)(∪r∈δ(p,a)εreach(r))

Nikita Borisov (UIUC) CS/ECE 374 24 Fall 2018 24 / 49

Page 36: NFAs continued, Closure Properties of Regular Languages

Formal definition of language accepted by N

DefinitionA string w is accepted by NFA N if δ∗N(s,w) ∩ A 6= ∅.

DefinitionThe language L(N) accepted by a NFA N = (Q,Σ, δ, s,A) is

{w ∈ Σ∗ | δ∗(s,w) ∩ A 6= ∅}.

Nikita Borisov (UIUC) CS/ECE 374 25 Fall 2018 25 / 49

Page 37: NFAs continued, Closure Properties of Regular Languages

Simulating an NFA by a DFA

Think of a program with fixed memory that needs to simulateNFA N on input w .

What does it need to store after seeing a prefix x of w?

It needs to know at least δ∗(s, x), the set of states that Ncould be in after reading xIs it sufficient? Yes, if it can compute δ∗(s, xa) after seeinganother symbol a in the input.

When should the program accept a string w? Ifδ∗(s,w) ∩ A 6= ∅.

Key Observation: A DFA M that simulates N should keep in itsmemory/state the set of states of N

Thus the state space of the DFA should be P(Q).

Nikita Borisov (UIUC) CS/ECE 374 26 Fall 2018 26 / 49

Page 38: NFAs continued, Closure Properties of Regular Languages

Simulating an NFA by a DFA

Think of a program with fixed memory that needs to simulateNFA N on input w .

What does it need to store after seeing a prefix x of w?

It needs to know at least δ∗(s, x), the set of states that Ncould be in after reading xIs it sufficient?

Yes, if it can compute δ∗(s, xa) after seeinganother symbol a in the input.

When should the program accept a string w? Ifδ∗(s,w) ∩ A 6= ∅.

Key Observation: A DFA M that simulates N should keep in itsmemory/state the set of states of N

Thus the state space of the DFA should be P(Q).

Nikita Borisov (UIUC) CS/ECE 374 26 Fall 2018 26 / 49

Page 39: NFAs continued, Closure Properties of Regular Languages

Simulating an NFA by a DFA

Think of a program with fixed memory that needs to simulateNFA N on input w .

What does it need to store after seeing a prefix x of w?

It needs to know at least δ∗(s, x), the set of states that Ncould be in after reading xIs it sufficient? Yes, if it can compute δ∗(s, xa) after seeinganother symbol a in the input.

When should the program accept a string w?

Ifδ∗(s,w) ∩ A 6= ∅.

Key Observation: A DFA M that simulates N should keep in itsmemory/state the set of states of N

Thus the state space of the DFA should be P(Q).

Nikita Borisov (UIUC) CS/ECE 374 26 Fall 2018 26 / 49

Page 40: NFAs continued, Closure Properties of Regular Languages

Simulating an NFA by a DFA

Think of a program with fixed memory that needs to simulateNFA N on input w .

What does it need to store after seeing a prefix x of w?

It needs to know at least δ∗(s, x), the set of states that Ncould be in after reading xIs it sufficient? Yes, if it can compute δ∗(s, xa) after seeinganother symbol a in the input.

When should the program accept a string w? Ifδ∗(s,w) ∩ A 6= ∅.

Key Observation: A DFA M that simulates N should keep in itsmemory/state the set of states of N

Thus the state space of the DFA should be P(Q).

Nikita Borisov (UIUC) CS/ECE 374 26 Fall 2018 26 / 49

Page 41: NFAs continued, Closure Properties of Regular Languages

Subset Construction

NFA N = (Q,Σ, s, δ,A). We create a DFAM = (Q′,Σ, δ′, s ′,A′) as follows:

Q′ = P(Q)

s ′ = εreach(s) = δ∗(s, ε)A′ = {X ⊆ Q | X ∩ A 6= ∅}δ′(X , a) = ∪q∈Xδ

∗(q, a) for each X ⊆ Q, a ∈ Σ.

Nikita Borisov (UIUC) CS/ECE 374 27 Fall 2018 27 / 49

Page 42: NFAs continued, Closure Properties of Regular Languages

Subset Construction

NFA N = (Q,Σ, s, δ,A). We create a DFAM = (Q′,Σ, δ′, s ′,A′) as follows:

Q′ = P(Q)

s ′ = εreach(s) = δ∗(s, ε)

A′ = {X ⊆ Q | X ∩ A 6= ∅}δ′(X , a) = ∪q∈Xδ

∗(q, a) for each X ⊆ Q, a ∈ Σ.

Nikita Borisov (UIUC) CS/ECE 374 27 Fall 2018 27 / 49

Page 43: NFAs continued, Closure Properties of Regular Languages

Subset Construction

NFA N = (Q,Σ, s, δ,A). We create a DFAM = (Q′,Σ, δ′, s ′,A′) as follows:

Q′ = P(Q)

s ′ = εreach(s) = δ∗(s, ε)A′ = {X ⊆ Q | X ∩ A 6= ∅}

δ′(X , a) = ∪q∈Xδ∗(q, a) for each X ⊆ Q, a ∈ Σ.

Nikita Borisov (UIUC) CS/ECE 374 27 Fall 2018 27 / 49

Page 44: NFAs continued, Closure Properties of Regular Languages

Subset Construction

NFA N = (Q,Σ, s, δ,A). We create a DFAM = (Q′,Σ, δ′, s ′,A′) as follows:

Q′ = P(Q)

s ′ = εreach(s) = δ∗(s, ε)A′ = {X ⊆ Q | X ∩ A 6= ∅}δ′(X , a) = ∪q∈Xδ

∗(q, a) for each X ⊆ Q, a ∈ Σ.

Nikita Borisov (UIUC) CS/ECE 374 27 Fall 2018 27 / 49

Page 45: NFAs continued, Closure Properties of Regular Languages

Example

No ε-transitions

active thread in a particular state. Thus, to simulate the NFA, the DFA only needs to maintain the currentset of states of the NFA.

The formal construction based on the above idea is as follows. Consider an NFA N = (Q,⌃, �, s, A).Define the DFA det(N) = (Q0,⌃, �0, s0, A0) as follows.

• Q0 = P(Q)

• s0 = �⇤N (s, ✏)

• A0 = {X ✓ Q | X \ A 6= ;}

• �0({q1, q2, . . . qk}, a) = �⇤N (q1, a) [ �⇤N (q2, a) [ · · · [ �⇤N (qk, a) or more concisely,

�0(X, a) =[

q2X

�⇤N (q, a)

An example NFA is shown in Figure 4 along with the DFA det(N) in Figure 5.

q0 q1

0, 1

1

0, 1

Figure 4: NFA N

{q0} {q0, q1}

{q1} {}

00, 1

0, 10, 1

1

Figure 5: DFA det(N) equivalent to N

We will now prove that the DFA defined above is correct. That is

Lemma 4. L(N) = L(det(N))

Proof. Need to show8w 2 ⌃⇤. det(N) accepts w i↵ N accepts w8w 2 ⌃⇤. �⇤det(N)(s

0, w) 2 A0 i↵ �⇤N (s, w) \ A 6= ;8w 2 ⌃⇤. �⇤det(N)(s

0, w) \ A 6= ; i↵ �⇤N (s, w) \ A 6= ;Again for the induction proof to go through we need to strengthen the claim as follows.

8w 2 ⌃⇤. �⇤det(N)(s0, w) = �⇤N (s, w)

In other words, this says that the state of the DFA after reading some string is exactly the set of states theNFA could be in after reading the same string.

The proof of the strengthened statement is by induction on |w|.

Base Case If |w| = 0 then w = ✏. Now

�⇤det(N)(s0, ✏) = s0 = �⇤N (s, ✏) by the defn. of �⇤det(N) and defn. of s0

7

Nikita Borisov (UIUC) CS/ECE 374 28 Fall 2018 28 / 49

Page 46: NFAs continued, Closure Properties of Regular Languages

Example

No ε-transitions

active thread in a particular state. Thus, to simulate the NFA, the DFA only needs to maintain the currentset of states of the NFA.

The formal construction based on the above idea is as follows. Consider an NFA N = (Q,⌃, �, s, A).Define the DFA det(N) = (Q0,⌃, �0, s0, A0) as follows.

• Q0 = P(Q)

• s0 = �⇤N (s, ✏)

• A0 = {X ✓ Q | X \ A 6= ;}

• �0({q1, q2, . . . qk}, a) = �⇤N (q1, a) [ �⇤N (q2, a) [ · · · [ �⇤N (qk, a) or more concisely,

�0(X, a) =[

q2X

�⇤N (q, a)

An example NFA is shown in Figure 4 along with the DFA det(N) in Figure 5.

q0 q1

0, 1

1

0, 1

Figure 4: NFA N

{q0} {q0, q1}

{q1} {}

00, 1

0, 10, 1

1

Figure 5: DFA det(N) equivalent to N

We will now prove that the DFA defined above is correct. That is

Lemma 4. L(N) = L(det(N))

Proof. Need to show8w 2 ⌃⇤. det(N) accepts w i↵ N accepts w8w 2 ⌃⇤. �⇤det(N)(s

0, w) 2 A0 i↵ �⇤N (s, w) \ A 6= ;8w 2 ⌃⇤. �⇤det(N)(s

0, w) \ A 6= ; i↵ �⇤N (s, w) \ A 6= ;Again for the induction proof to go through we need to strengthen the claim as follows.

8w 2 ⌃⇤. �⇤det(N)(s0, w) = �⇤N (s, w)

In other words, this says that the state of the DFA after reading some string is exactly the set of states theNFA could be in after reading the same string.

The proof of the strengthened statement is by induction on |w|.

Base Case If |w| = 0 then w = ✏. Now

�⇤det(N)(s0, ✏) = s0 = �⇤N (s, ✏) by the defn. of �⇤det(N) and defn. of s0

7

Nikita Borisov (UIUC) CS/ECE 374 29 Fall 2018 29 / 49

Page 47: NFAs continued, Closure Properties of Regular Languages

Incremental construction

Only build states reachable from s ′ = εreach(s) the start state of M

Induction Hypothesis Assume inductively that the statement holds 8w. |w| < n.

Induction Step Let w be such that |w| = n (for n > 0). Without loss of generality w is of the form uawith |u| = n � 1 and a 2 ⌃.

�⇤det(N)(s0, ua) = �⇤det(N)(�

⇤det(N)(s, u), a) property of �⇤ of DFAs

= �0(�⇤det(N)(s, u), a) property of �⇤ of DFAs

=S

q2�⇤det(N)

(s,u) �⇤N (q, a) definition of �0

=S

q2�⇤N (s,u) �⇤N (q, a) induction hypothesis on u

= �⇤N (s, ua) Proposition 1

3.1 Relevant States

The formal definition of the DFA has many states, several of which are unreachable from the initial state(see Figure 5). To make the algorithm simpler for a human to implement (and for the resulting DFA to bereadable), one can include only the reachable states. To do this,

1. Start by drawing the initial state of the DFA.

2. While there are states with missing transitions, draw the missing transitions creating any new statesthat maybe needed.

3. Step 2 is repeated until transitions from every state has been drawn.

4. Figure out which states are final, and mark them appropriately.

The method of adding only relevant states is shown in Figures 6 and 7.

q0

q1

q2

q3

✏ 0

1 ✏

Figure 6: NFA N✏

{q0, q1} {q2, q3}

{q3} {}

1

0 0, 1

0, 1

0, 1

Figure 7: DFA det(N✏) with only relevant states

8

δ′(X , a) = ∪q∈Xδ∗(q, a)

Nikita Borisov (UIUC) CS/ECE 374 30 Fall 2018 30 / 49

Page 48: NFAs continued, Closure Properties of Regular Languages

Incremental algorithm

Build M beginning with start state s ′ == εreach(s)

For each existing state X ⊆ Q consider each a ∈ Σ andcalculate the state Y = δ′(X , a) = ∪q∈Xδ

∗(q, a) and add atransition.

If Y is a new state add it to reachable states that need toexplored.

To compute δ∗(q, a) - set of all states reached from q on string aCompute X = εreach(q)

Compute Y = ∪p∈Xδ(p, a)

Compute Z = εreach(Y ) = ∪r∈Y εreach(r)

Nikita Borisov (UIUC) CS/ECE 374 31 Fall 2018 31 / 49

Page 49: NFAs continued, Closure Properties of Regular Languages

Proof of Correctness

TheoremLet N = (Q,Σ, s, δ,A) be a NFA and let M = (Q′,Σ, δ′, s ′,A′)be a DFA constructed from N via the subset construction. ThenL(N) = L(M).

Stronger claim:

LemmaFor every string w , δ∗N(s,w) = δ∗M(s ′,w).

Proof by induction on |w |.

Base case: w = ε.δ∗N(s, ε) = εreach(s).δ∗M(s ′, ε) = s ′ = εreach(s) by definition of s ′.

Nikita Borisov (UIUC) CS/ECE 374 32 Fall 2018 32 / 49

Page 50: NFAs continued, Closure Properties of Regular Languages

Proof of Correctness

TheoremLet N = (Q,Σ, s, δ,A) be a NFA and let M = (Q′,Σ, δ′, s ′,A′)be a DFA constructed from N via the subset construction. ThenL(N) = L(M).

Stronger claim:

LemmaFor every string w , δ∗N(s,w) = δ∗M(s ′,w).

Proof by induction on |w |.

Base case: w = ε.δ∗N(s, ε) = εreach(s).δ∗M(s ′, ε) = s ′ = εreach(s) by definition of s ′.

Nikita Borisov (UIUC) CS/ECE 374 32 Fall 2018 32 / 49

Page 51: NFAs continued, Closure Properties of Regular Languages

Proof continued

LemmaFor every string w , δ∗N(s,w) = δ∗M(s ′,w).

Inductive step: w = xa (Note: suffix definition of strings)δ∗N(s, xa) = ∪p∈δ∗N(s,x)δ

∗N(p, a) by inductive defn of δ∗N

δ∗M(s ′, xa) = δM(δ∗M(s ′, x), a) by inductive defn of δ∗M

By inductive hypothesis: Y = δ∗N(s, x) = δ∗M(s, x)

Thus δ∗N(s, xa) = ∪p∈Y δ∗N(p, a) = δM(Y , a) by definition of δM .

Therefore,δ∗N(s, xa) = δM(Y , a) = δM(δ∗M(s ′, x), a) = δ∗M(s ′, xa)which is what we need.

Nikita Borisov (UIUC) CS/ECE 374 33 Fall 2018 33 / 49

Page 52: NFAs continued, Closure Properties of Regular Languages

Proof continued

LemmaFor every string w , δ∗N(s,w) = δ∗M(s ′,w).

Inductive step: w = xa (Note: suffix definition of strings)δ∗N(s, xa) = ∪p∈δ∗N(s,x)δ

∗N(p, a) by inductive defn of δ∗N

δ∗M(s ′, xa) = δM(δ∗M(s ′, x), a) by inductive defn of δ∗M

By inductive hypothesis: Y = δ∗N(s, x) = δ∗M(s, x)

Thus δ∗N(s, xa) = ∪p∈Y δ∗N(p, a) = δM(Y , a) by definition of δM .

Therefore,δ∗N(s, xa) = δM(Y , a) = δM(δ∗M(s ′, x), a) = δ∗M(s ′, xa)which is what we need.

Nikita Borisov (UIUC) CS/ECE 374 33 Fall 2018 33 / 49

Page 53: NFAs continued, Closure Properties of Regular Languages

Proof continued

LemmaFor every string w , δ∗N(s,w) = δ∗M(s ′,w).

Inductive step: w = xa (Note: suffix definition of strings)δ∗N(s, xa) = ∪p∈δ∗N(s,x)δ

∗N(p, a) by inductive defn of δ∗N

δ∗M(s ′, xa) = δM(δ∗M(s ′, x), a) by inductive defn of δ∗M

By inductive hypothesis: Y = δ∗N(s, x) = δ∗M(s, x)

Thus δ∗N(s, xa) = ∪p∈Y δ∗N(p, a) = δM(Y , a) by definition of δM .

Therefore,δ∗N(s, xa) = δM(Y , a) = δM(δ∗M(s ′, x), a) = δ∗M(s ′, xa)which is what we need.

Nikita Borisov (UIUC) CS/ECE 374 33 Fall 2018 33 / 49

Page 54: NFAs continued, Closure Properties of Regular Languages

Proof continued

LemmaFor every string w , δ∗N(s,w) = δ∗M(s ′,w).

Inductive step: w = xa (Note: suffix definition of strings)δ∗N(s, xa) = ∪p∈δ∗N(s,x)δ

∗N(p, a) by inductive defn of δ∗N

δ∗M(s ′, xa) = δM(δ∗M(s ′, x), a) by inductive defn of δ∗M

By inductive hypothesis: Y = δ∗N(s, x) = δ∗M(s, x)

Thus δ∗N(s, xa) = ∪p∈Y δ∗N(p, a) = δM(Y , a) by definition of δM .

Therefore,δ∗N(s, xa) = δM(Y , a) = δM(δ∗M(s ′, x), a) = δ∗M(s ′, xa)which is what we need.

Nikita Borisov (UIUC) CS/ECE 374 33 Fall 2018 33 / 49

Page 55: NFAs continued, Closure Properties of Regular Languages

Proof continued

LemmaFor every string w , δ∗N(s,w) = δ∗M(s ′,w).

Inductive step: w = xa (Note: suffix definition of strings)δ∗N(s, xa) = ∪p∈δ∗N(s,x)δ

∗N(p, a) by inductive defn of δ∗N

δ∗M(s ′, xa) = δM(δ∗M(s ′, x), a) by inductive defn of δ∗M

By inductive hypothesis: Y = δ∗N(s, x) = δ∗M(s, x)

Thus δ∗N(s, xa) = ∪p∈Y δ∗N(p, a) = δM(Y , a) by definition of δM .

Therefore,δ∗N(s, xa) = δM(Y , a) = δM(δ∗M(s ′, x), a) = δ∗M(s ′, xa)which is what we need.

Nikita Borisov (UIUC) CS/ECE 374 33 Fall 2018 33 / 49

Page 56: NFAs continued, Closure Properties of Regular Languages

Part IV

Closure Properties of RegularLanguages

Nikita Borisov (UIUC) CS/ECE 374 34 Fall 2018 34 / 49

Page 57: NFAs continued, Closure Properties of Regular Languages

Regular Languages

Regular languages have three different characterizations

Inductive definition via base cases and closure under union,concatenation and Kleene star

Languages accepted by DFAs

Languages accepted by NFAs

Regular language closed under many operations:

union, concatenation, Kleene star via inductive definition orNFAs

complement, union, intersection via DFAs

homomorphism, inverse homomorphism, reverse, . . .

Different representations allow for flexibility in proofs

Nikita Borisov (UIUC) CS/ECE 374 35 Fall 2018 35 / 49

Page 58: NFAs continued, Closure Properties of Regular Languages

Regular Languages

Regular languages have three different characterizations

Inductive definition via base cases and closure under union,concatenation and Kleene star

Languages accepted by DFAs

Languages accepted by NFAs

Regular language closed under many operations:

union, concatenation, Kleene star via inductive definition orNFAs

complement, union, intersection via DFAs

homomorphism, inverse homomorphism, reverse, . . .

Different representations allow for flexibility in proofs

Nikita Borisov (UIUC) CS/ECE 374 35 Fall 2018 35 / 49

Page 59: NFAs continued, Closure Properties of Regular Languages

Examples: PREFIX and SUFFIX

Let L be a language over Σ.

DefinitionPREFIX(L) = {w | wx ∈ L, x ∈ Σ∗}

DefinitionSUFFIX(L) = {w | xw ∈ L, x ∈ Σ∗}

TheoremIf L is regular then PREFIX(L) is regular.

TheoremIf L is regular then SUFFIX(L) is regular.

Nikita Borisov (UIUC) CS/ECE 374 36 Fall 2018 36 / 49

Page 60: NFAs continued, Closure Properties of Regular Languages

Examples: PREFIX and SUFFIX

Let L be a language over Σ.

DefinitionPREFIX(L) = {w | wx ∈ L, x ∈ Σ∗}

DefinitionSUFFIX(L) = {w | xw ∈ L, x ∈ Σ∗}

TheoremIf L is regular then PREFIX(L) is regular.

TheoremIf L is regular then SUFFIX(L) is regular.

Nikita Borisov (UIUC) CS/ECE 374 36 Fall 2018 36 / 49

Page 61: NFAs continued, Closure Properties of Regular Languages

PREFIX

Let M = (Q,Σ, δ, s,A) be a DFA that recognizes L

Create new DFA/NFA to accept PREFIX(L) (or SUFFIX(L)).

X = {q ∈ Q | s can reach q in M}Y = {q ∈ Q | q can reach some state in A}Z = X ∩ Y

TheoremConsider DFA M ′ = (Q,Σ, δ, s,Z). L(M ′) = PREFIX(L).

Nikita Borisov (UIUC) CS/ECE 374 37 Fall 2018 37 / 49

Page 62: NFAs continued, Closure Properties of Regular Languages

PREFIX

Let M = (Q,Σ, δ, s,A) be a DFA that recognizes L

Create new DFA/NFA to accept PREFIX(L) (or SUFFIX(L)).

X = {q ∈ Q | s can reach q in M}Y = {q ∈ Q | q can reach some state in A}Z = X ∩ Y

TheoremConsider DFA M ′ = (Q,Σ, δ, s,Z). L(M ′) = PREFIX(L).

Nikita Borisov (UIUC) CS/ECE 374 37 Fall 2018 37 / 49

Page 63: NFAs continued, Closure Properties of Regular Languages

SUFFIX

Let M = (Q,Σ, δ, s,A) be a DFA that recognizes L

X = {q ∈ Q | s can reach q in M}

Consider NFA N = (Q ∪ {s ′},Σ, δ′, s ′,A). Add new start state s ′

and ε-transition from s ′ to each state in X .

Claim: L(N) = SUFFIX(L).

Nikita Borisov (UIUC) CS/ECE 374 38 Fall 2018 38 / 49

Page 64: NFAs continued, Closure Properties of Regular Languages

SUFFIX

Let M = (Q,Σ, δ, s,A) be a DFA that recognizes L

X = {q ∈ Q | s can reach q in M}

Consider NFA N = (Q ∪ {s ′},Σ, δ′, s ′,A). Add new start state s ′

and ε-transition from s ′ to each state in X .

Claim: L(N) = SUFFIX(L).

Nikita Borisov (UIUC) CS/ECE 374 38 Fall 2018 38 / 49

Page 65: NFAs continued, Closure Properties of Regular Languages

SUFFIX

Let M = (Q,Σ, δ, s,A) be a DFA that recognizes L

X = {q ∈ Q | s can reach q in M}

Consider NFA N = (Q ∪ {s ′},Σ, δ′, s ′,A). Add new start state s ′

and ε-transition from s ′ to each state in X .

Claim: L(N) = SUFFIX(L).

Nikita Borisov (UIUC) CS/ECE 374 38 Fall 2018 38 / 49

Page 66: NFAs continued, Closure Properties of Regular Languages

Part V

DFA to Regular Expressions

Nikita Borisov (UIUC) CS/ECE 374 39 Fall 2018 39 / 49

Page 67: NFAs continued, Closure Properties of Regular Languages

DFA to Regular Expressions

TheoremGiven a DFA M = (Q,Σ, δ, s,A) there is a regular expression rsuch that L(r) = L(M). That is, regular expressions are as powerfulas DFAs (and hence also NFAs).

Simple algorithm but formal proof is involved. See notes.

An easier proof via a more involved algorithm later in course.

Nikita Borisov (UIUC) CS/ECE 374 40 Fall 2018 40 / 49

Page 68: NFAs continued, Closure Properties of Regular Languages

Stage 0: Input

A B

C

a

ba

a, b

b

Nikita Borisov (UIUC) CS/ECE 374 41 Fall 2018 41 / 49

Page 69: NFAs continued, Closure Properties of Regular Languages

Stage 1: Normalizing

A B

C

a

ba

a, b

b

2: Normalizing it.

init A B

C AC

ǫ ab

a

a+ b

b

ǫ

Nikita Borisov (UIUC) CS/ECE 374 42 Fall 2018 42 / 49

Page 70: NFAs continued, Closure Properties of Regular Languages

Stage 2: Remove state A

init A B

C AC

ǫ ab

a

a+ b

b

ǫ

init A B

C AC

ǫ ab

a

a+ b

b

ǫ

a

b

Nikita Borisov (UIUC) CS/ECE 374 43 Fall 2018 43 / 49

Page 71: NFAs continued, Closure Properties of Regular Languages

Stage 4: Redrawn without old edges

init B

C AC

b

a

a+ b

ǫ

a

b

Nikita Borisov (UIUC) CS/ECE 374 44 Fall 2018 44 / 49

Page 72: NFAs continued, Closure Properties of Regular Languages

Stage 4: Removing B

init B

C AC

b

a

a+ b

ǫ

a

b

init B

C AC

b

a

a+ b

ǫ

a

b

ab∗a

Nikita Borisov (UIUC) CS/ECE 374 45 Fall 2018 45 / 49

Page 73: NFAs continued, Closure Properties of Regular Languages

Stage 5: Redraw

init

C AC

a+ b

ǫ

ab∗a+ b

Nikita Borisov (UIUC) CS/ECE 374 46 Fall 2018 46 / 49

Page 74: NFAs continued, Closure Properties of Regular Languages

Stage 6: Removing C

init

C AC

a+ b

ǫ

ab∗a+ b

init

C AC

a+ b

ǫ

ab∗a+ b

(ab∗a+ b)(a+ b)∗ ǫ

Nikita Borisov (UIUC) CS/ECE 374 47 Fall 2018 47 / 49

Page 75: NFAs continued, Closure Properties of Regular Languages

Stage 7: Redraw

init AC(ab∗a+ b)(a+ b)∗

Nikita Borisov (UIUC) CS/ECE 374 48 Fall 2018 48 / 49

Page 76: NFAs continued, Closure Properties of Regular Languages

Stage 8: Extract regular expression

init AC(ab∗a+ b)(a+ b)∗

Thus, this automata is equivalent to the regular expression(ab∗a + b)(a + b)∗.

Nikita Borisov (UIUC) CS/ECE 374 49 Fall 2018 49 / 49