NFA-Lambda NFA-Lambda.gif
delta delta.gif
q0 q_0
Sigma Sigma.gif
intersect intersect.gif
union union.gif
forevery forall.gif
forsome exists.gif
thereexists exists.gif
element in.gif
neq neq.gif
subset subset.gif
lambda lambda.gif
Claim.
forevery M, an NFA-Lambda, thereexists M', a DFA, s.t. L(M) = L(M').
Proof.
This proof is largely a matter of bookkeeping. But note that it requires
Two parts, and each part requires induction.
Let M = (Q, Sigma, q0, A, delta) be an NFA-Lambda.
Let M' = (2^Q, Sigma, {q0}, A', delta') be a DFA with A' = { S element 2^Q | S intersect A neq {} }.
Let delta'(S,a) = {q | forsome p element S, ((p,a),q) element delta}
delta* is the smallest set s.t.
delta subset delta*,
((q,lambda),q) element delta*, and
if ((q,x),p) element delta* and ((p,a),q') element delta* then ((q,xa),q') element delta*.
delta'* is the smallest fn s.t.
delta' subset delta'*,
delta'*(s,lambda) = s, and
if delta'*(s,x) = t and delta'*(t,a) = s' then delta'*(s,xa) = s'.
Part I. If ((q0,x),p) element delta*, then forsome T, p element T and delta'*({q0},x)=T,
i.e., if p element A, then (if x element L(M), then x element L(M')).
By induction on x.
Let x = lambda. If ((q0,lambda),p) element delta*, then p=q0,
and delta'*({q0},lambda)={q0}.
Suppose the claim for x. Show for xa.
If ((q0,x),p) element delta* then forsome T, p element T, delta'*({q0},x)=T.
Let ((p,a),q') element delta, so ((q0,xa),q') element delta*.
Is delta'*({q0},xa) = {q'} union S, for some S?
What can be said about delta'(T,a)? If p element T, is q' element delta'(T,a)?
Yes: since ((p,a),q') element delta, forevery T: p element T, q' element delta'(T,a).
Part II. If delta'*({q0},x) = S and p element S, then ((q0,x),p) element delta*,
i.e., if p element A', then (if x element L(M') then x element L(M)).
By induction on x.
Let x = lambda. delta'*({q0},lambda) = {q0}. So p = q0. Also,
((q0,lambda),q0) element delta*. If q0 element A' then q0 element A.
Suppose the claim for x. Show for xa.
If delta'*({q0},x) = S, then consider what delta'(S,a) is.
By definiton, delta'(S,a) = {q | forsome p element S, ((p,a),q) element delta }
This is also delta'*({q0},xa) = {q | forsome p element S, ((p,a),q) element delta },
by the definition of delta'*.
Let r be any member of this set.
Then forsome p element S, ((p,a),r) element delta.
By hypothesis, ((q0,x),q') element delta*, forevery q' element S.
In particular, for p element S, ((q0,x),p) element delta*.
Since ((p,a),r) element delta, ((q0,xa),r) element delta*.