Proof that NFAs w/epsilon equivalent to NFAs w/o epsilon

We have a NFA w/epsilon, M = (Q,å ,d ,q0,F). We build a NFA w/o epsilon, M' = (Q,å ,d ',q0,F') where

We need to prove that the two machines accept the same input strings, or equivalently, that a given string x is accepted by M' exactly whenever it is accepted by M. By the definitions of acceptance, we want to prove

d'(q0,x) intersect F' nonempty if d^(q0,x) intersect F nonempty.

d'(q0,wa) = d'(d'(q0,w),a) = d'(d^ (q0,w),a)

d'(d^ (q0,w),a) =
Uq in d ^(q0 w) d'(q,a) =
Uq in d ^(q0 w) d^(q,a).

Uq in d ^(q0 w) d^(q,a) = d^(q0,wa).

F' = F U{q0}
e *(q0) intersect F is nonempty.

q0  Î d^ (q0,x).

d^ (q0,x) Ée*(q0).

      Exercises:   

 

   Q)   Construct a NFA without epsilon moves to accept all strings which consist of any number of 0's

                                followed by any number of 1's followed by any number of 2's  

   Q)   Construct NFA without epsilon moves for

                                                                       
States
a
b
c
e
-->P
f
Q
R
{Q,R}
    Q
P
R
{P,Q}
f
  *R
f
f
f
f
                         
    
     

 

 

    Q)    For the given transition table, Construct the equivalent NFA without epsilon moves

 

States
a
b
c
e
-->P
P
Q
R
f
    Q
Q
R
f
P
  *R
R
f
P
Q
                         
 
     

 

 

Solutions:

 

Previous Section                                        HOME                                 Next Section