Union of two regular languages

From HandWiki

In formal language theory, and in particular the theory of nondeterministic finite automata, it is known that the union of two regular languages is a regular language. This article provides a proof of that statement.

Theorem

For any regular languages L1 and L2, language L1L2 is regular.

Proof

Since L1 and L2 are regular, there exist NFAs N1, N2 that recognize L1 and L2.

Let

N1=(Q1, Σ, T1, q1, A1)
N2=(Q2, Σ, T2, q2, A2)[clarification needed]

Construct

N=(Q, Σ, T, q0, A1A2)

where

Q=Q1Q2{q0}
T(q,x)={T1(q,x)ifqQ1T2(q,x)ifqQ2{q1,q2}ifq=q0 and x=ϵifq=q0 and xϵ

In the following, we shall use px,Tq to denote qE(T(p,x))[clarification needed]

Let w be a string from L1L2. Without loss of generality assume wL1.

Let w=x1x2xm where m0,xiΣ

Since N1 accepts x1x2xm, there exist r0,r1,rmQ1 such that[clarification needed]

q1ϵ,T1r0x1,T1r1x2,T1r2rm1xm,T1rm,rmA1

Since T1(q,x)=T(q,x) qQ1xΣ

r0E(T1(q1,ϵ))r0E(T(q1,ϵ))
r1E(T1(r0,x1))r1E(T(r0,x1))
rmE(T1(rm1,xm))rmE(T(rm1,xm))


We can therefore substitute T for T1 and rewrite the above path as


q1ϵ,Tr0x1,Tr1x2,Tr2rm1xm,Trm,rmA1A2,r0,r1,rmQ


Furthermore,

T(q0,ϵ)={q1,q2}q1T(q0,ϵ)q1E(T(q0,ϵ))q0ϵ,Tq1

and

q0ϵ,Tq1ϵ,Tr0q0ϵ,Tr0


The above path can be rewritten as


q0ϵ,Tr0x1,Tr1x2,Tr2rm1xm,Trm,rmA1A2,r0,r1,rmQ


Therefore, N accepts x1x2xm and the proof is complete.[clarification needed]


Note: The idea drawn from this mathematical proof for constructing a machine to recognize L1L2 is to create an initial state and connect it to the initial states of L1 and L2 using ϵ arrows.

References

  • Michael Sipser, Introduction to the Theory of Computation ISBN 0-534-94728-X. (See . Theorem 1.22, section 1.2, pg. 59.)