<<

£ CS 373: Theory of Computation £ Madhusudan Parthasarathy Lecture 4: The product construction: un- der intersection and union

28 January 2010

This lecture nishes section 1.1 of Sipser and also covers the start of 1.3.

1 Product Construction

1.1 Product Construction: Example

Let Σ = {a, b} and L is the of strings in Σ∗ that have the form a∗b∗ and have even ∗ ∗ ∗ length. L is the intersection of two regular languages L1 = a b and L2 = (ΣΣ) . We can show they are regular by exhibiting DFAs that recognize them.

r0

a b a,b a,b a,b

b a q0 q1 drain r1

L1 L2 We can run these two DFAs together, by creating states that remember the states of both machines.

(q0,r0) (q1,r0) (drain, r0) b a a a a b b b a,b a,b

(q0,r1) (q1,r1) (drain, r1) Notice that the nal states of the new DFA are the states (q, r) where q is nal in the rst DFA and r is nal in the second DFA. To recognize the union of the two languages, rather than the intersection, we mark all the states (q, r) such that either q or r are accepting states in the their respective DFAs.

State of a DFA after reading a word w. In the following, given a DFA M = (Q, Σ, δ, q0,F ), we will be interested in the state the DFA M is in, after reading the a string w. Let us denote

1 by δ∗ : Q × Σ∗ → Q the such that δ∗(q, w) is the state the DFA will land in, if started from state q and fed the word w. Formally, we dene δ∗ : Q × Σ∗ → Q using the following inductive denition:

• δ∗(q, ) = q for every q ∈ Q,

• δ∗(q, wa) = δ(δ∗(q, w), a) for each q ∈ Q, w ∈ Σ∗, a ∈ Σ.

∗ ∗ Note that by the above denition of δ , we have that w ∈ L(M) i δ (q0, w) ∈ F .

2 Product Construction: Formal construction

We are given two DFAs and 0 0 0 0 0 both working over M = (Q, Σ, δ, q0,F ) M = (Q , Σ, δ , q0,F ) the same alphabet Σ.A product automaton of M and M 0 is an automaton

 0  N = Q, Σ, δN , (q0, q0) ,FN ,

0 0 0 where Q = Q × Q , and δN : Q × Σ → Q. Also, for any q ∈ Q, q ∈ Q and c ∈ Σ, we require

0  0 0  δN ((q, q ) , c ) = δ(q, c), δ (q , c) . (1) | {z } state of N

The set FN ⊆ Q of accepting states is free to be whatever we need it to be, depending on what we want N to recognize. For example, if we would like N to accept the intersection 0 0 L(M) ∩ L(M ) then we will set FN = F × F . If we want N to recognize the union language 0 0 0 L(M) ∪ L(M ) then FN =(F × Q ) ∪ ∪(Q × F ).

Lemma 2.1 For any input word w ∈ Σ∗, the product automata N of the DFAs M = and 0 0 0 0 0 , is in state 0 after reading , if and only (Q, Σ, δ, q0,F ) M = (Q , Σ, δ , q0,F ) (q, q ) w if (i) M in the state q after reading w, and (ii) M 0 is in the state q0 after reading w. In other words, ∗ 0 ∗ 0∗ 0 . δN ((q0, q0), w) = (δ (q0, w), δ (q0, w)) Proof: The proof is by induction on the length of the word w. If is the empty word, then is initially in the state 0 by construction, where w =  N (q0, q0) (resp. 0 ) is the initial state of (resp. 0). As such, the claim holds in this case. q0 q0 M M Formally, ∗ 0 0 ∗ 0∗ 0 (by denition of ∗ , ∗ and 0∗). δN ((q0, q0), ) = (q0, q0) = (δ (q0, ), δ (q0, )) δN δ δ

∗ Otherwise, |w| > 0, and let us hence assume w = w1a (w1 ∈ Σ , a ∈ Σ), and assume the induction hypothesis that the claim is true for all input words of length strictly smaller than

|w| (in particular |w1|). Let 0 be the state that is in after reading the string . By the induction (qk−1, qk−1) N w1 hypothesis, as , we know that is in the state after reading , and 0 is |w1| = k − 1 M qk−1 wb M in the state 0 after reading . qk−1 wb ∗ Let qk = δ(qk−1, a) = δ(δ (q0, w1) , a) = δ(q0, w) and

0 0 0 0 0 0 0 0 qk = δ (qk−1, a) = δ (δ (q0, w1) , a) = δ (q0, w) .

2 As such, by denition, (resp. 0) would in the state (resp. 0 ) after reading . M M qk qk w Also, by the denition of its transition function, after reading w the DFA N would be in the state

0 ∗ 0 0  δN ((q0, q0), w) = δN (δN ((q0, q0), w1) , a) = δN (qk−1, qk−1), a 0  0 = δ(qk−1, a), δ(qk−1, a) =(qk, qk) , (see Eq. (1)). This establishes the claim.

Lemma 2.2 Let and 0 0 0 0 0 be two given DFAs. Let M = (Q, Σ, δ, q0,F ) M = (Q , Σ, δ , q0,F ) N be a product automaton with set of accepting states is F × F 0. Then L(N) = L(M) ∩ L(M 0). Proof: i ∗ 0 0 w ∈ L(N) δN ((q0, q0), w) ∈ F × F i ∗ 0∗ 0 0 (by Lemma 2.1) (δ (q0, w), δ (q0, w)) ∈ F × F i ∗ and 0∗ 0 0 δ (q0, w) ∈ F δ (q0, w) ∈ F i w ∈ L(M) and w ∈ L(M 0). More verbosely: If 0 , then let ∗ and 0 0∗ 0 0. By w ∈ L(M) ∩ L(M ) qw = δ (q0, w) ∈ F qw = δ (q0, w) ∈ F Lemma 2.1, this implies that ∗ 0 0 0. Namely, accepts the δN ((q0, q0), w) = (qw, qw) ∈ F × F N word w, implying that w ∈ L(N), and as such L(M) ∩ L(M 0) ⊆ L(N). Similarly, if , then 0 ∗ 0 must be an accepting state of w ∈ L(N) (pw, pw) = δN ((q0, q0), w) . But the set of accepting states of is 0. That is 0 0, implying N N F × F (pw, pw) ∈ F × F that and 0 0. Now, by Lemma 2.1, we know that ∗ and pw ∈ F pw ∈ F δ (q0, w) = pw ∈ F 0∗ 0 0 0. Thus, and 0 both accept , which implies that and δ (q0, w) = pw ∈ F M M w w ∈ L(M) w ∈ L(M 0). Namely, w ∈ L(M) ∩ L(M 0), implying that L(N) ⊆ L(M) ∩ L(M 0). Putting the above together proves the lemma.

3