SLD resolution

From formulasearchengine
Revision as of 21:09, 21 October 2013 by en>Ctxppc (Undid revision 578159743 by Ctxppc (talk))
Jump to navigation Jump to search

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)

Construct

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

where

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

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

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

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.


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.)