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