Theory of Computation 36
THEOREM: Let L be a set accepted by Nondeterministic finite automata (NFA), then there
exist a Deterministic finite automata (DFA) that accepts L.
Proof:
Let M = (Q, Σ, /, qo, F) be an NFA for language L, then Define DFA Mʹ such that
Mʹ = (Qʹ, Σʹ, /ʹ, qoʹ, Fʹ)
(i) The states of Mʹ are all the subsets of M then the Qʹ=2
Q
(ii) The input symbols are common for both NFA and DFA. i.e., Σʹ = Σ
(iii) If q0 is the initial state in the NFA, then q0ʹ = [q0] = initial state in DFA
(iv) Fʹ be the set of all final states which contain final states of M. i.e., Fʹ ⊆ 2
Q
∪ F
(v) The element in Qʹ will be denoted by [q1, q2, q3, … , qi] is a single state in Qʹ and the
elements in Q denoted by{q1, q2, q3, …, qi} are multiple states in Q. Define /ʹ such that
/ʹ([q1, q2, q3, …, qi], a) = [p1, p2, p3, …, pj] iff /ʹ({q1, q2, q3, …, qi}, a) = {p1, p2, p3, …, pj}
This mean that in NFA, at the current states { q1, q2, q3, …, qi }, if we give input a
then it goes to the next states {p1, p2, p3, … , pj}.
While constructing DFA, the current state is assumed to be [q1, q2, q3, …, qi] with
input a, the next state is assumed to be [p1, p2, p3, … , pj].
On applying / function on each of states q1, q2, q3, …, qi, the new states may be any
of the states from p1, p2, p3, … , pj.
The theorem can be proved by mathematical induction on length of the input string x.
/?(q0ʹ, x) = [q1, q2, q3, …, qi] if and only if /(q0, x) = {q1, q2, q3, …, qi}
Basis: If the length of input string is 0, i.e., |x|=0, that means x is 0 then q0ʹ = [q0]
Induction: If we assume that the hypothesis is true for the input string of length I (or less
than I), then if xa is the string of length I + s.
Now the function /ʹ can be written as /ʹ(q0ʹ, xa) = /ʹ(/ʹ(q0, x), a)
By the induction hypothesis,
/ʹ(q0ʹ, x) = [p1, p2, p3, … , pj] if and only if /(q0, x) = {p1, p2, p3, … , pj}
By definition of /ʹ
/ʹ([p1, p2, … , pj], a) = [r1, r2, ..., rk] if and only if /({p1, p2, … , pj}, a) = {r1, r2, ..., rk}
Thus, /ʹ(q0ʹ, xa) = [r1, r2, ..., rk] if and only if /(q0, xa) = {r1, r2, ..., rk} is shown by induction.
Therefore L(M)=L(Mʹ).
i.e., If a language is accepted by NFA then the same language is also accepted by DFA.
Hence the theorem∎
THEOREM: If L is accepted by NFA with 0 transition, then their exist L which is accepted
by NFA without 0 transition. (Show that the language L accepted by NFA with 0 move must
be accepted by NFA without 0 move.)
Proof:
Let M = (Q, Σ, /, q0, F) be an NFA with 0 transition.
Construct Mʹ = (Q, Σ, /ʹ, q0, Fʹ)
where Fʹ={ F ∪{q0} if 0 closure contains state off
{ F otherwise
Mʹ is a NFA without 0 moves. The /ʹ function can be denoted by the /ʹʹ with same input.
For example, /ʹ(q, a) = /ʹʹ(q, a) for some q in Q and a from Σ.
We will apply the method of induction with input string x.
Basis:
The x will not be 0 because /ʹ(q0, 0)={q0} and /ʹʹ(q0, 0) = 0-closure(q0)
Assume that the length of string x to be 1, i.e., |x|=1, then x is a symbol, say ʹaʹ.
/ʹ(q0, a) = /ʹʹ(q0, a)
Induction
Assume that the length of string x to be more than 1. i.e., |x| >1.