Question text is in black, my answers in blue.
Sipser's definition is a little less clear than it could be because he doesn't
give the type of δ in his 5-tuple. The δ for an all-NFA is in fact
exactly the same as the δ for an ordinary NFA. In fact, the
syntax of an all-NFA is also exactly the same. You can think of an
all-NFA as a diagram with at least one node, arrows labeled by letters or by
ε, one start state, and zero or more final states. The only difference
is in the semantics, where now w is in the language of the all-NFA if
and only if all paths possible on w lead to final states.
For example, consider the NFA in Exercise 1.16 (a) on page 86. We can
define M to be an all-NFA with exactly this diagram, and figure out what the
language L(M) then is. The empty string is in L(M) because the only path that
reads no letters goes to state 1, which is final. It turns out that for any
string beginning with a, there is a path leading to state 2, so these strings
are not in the language. If a string starts with b, then what matters is the
number of b's before the first a, if any. If the string is just an even number
of b's, the only possible path is to state 1 and we are in the language. If it
is an odd number of b's, the only possible path is to state 2 and we are not in
the language. If it is an even number of b's followed by an a (followed by
anything else), then there is a possible path to state 2 and we are not in the
language. If it is an odd number of b's followed by an a (followed by anything
else), then there are no possible paths and since all possible paths
lead to final states (vacuously), these strings are in the language. The
language of this all-NFA is thus (bb)* &union;
(bb)*aΣ*. The language of the corresponding
ordinary NFA is this language together with
(bb)*aΣ*. I did this analysis with the help of
the Subset Construction -- I suggest you think about the Subset Construction
for your proof.
For a simpler example, consider the all-NFA with one non-final state and no
arrows. The NFA with this diagram has the empty language, because no string
has any path leading to a final state. But the all-NFA with this diagram
has language ΣΣ*, the set of all strings except the
empty string. This is because the empty string has one path to a non-final
state, and so it not in the language, but any non-empty string has no paths at
all, and all these paths (vacuously) go to final states.
Last modified 4 February 2011