TransitionGraph 

> ## L={w:|w| mod 5 != 0}
InternalStates:={q0,q1,q2,q3,q4}:
Alphabet:={a,b}:
delta:=table():
delta[(q0,a)]:={q1}:
delta[(q0,b)]:={q1}:
delta[(q1,a)]:={q2}:
delta[(q1,b)]:={q2}:
delta[(q2,a)]:={q3}:
delta[(q2,b)]:={q3}:
delta[(q3,a)]:={q4}:
delta[(q3,b)]:={q4}:
delta[(q4,a)]:={q0}:
delta[(q4,b)]:={q0}:
#delta[(q5,\lambda)]:={q0}:
InitialState:=q0:
FinalStates:={q1,q2,q3,q4}:
nfa:=mkNFA(InternalStates,Alphabet,op(delta),InitialState,FinalStates):
 

> transitionGraph(nfa);
 

Plot_2d
 

>
 

>
 

> NFA2RE(nfa);
 

RE(
RE(
(6.4.1)
 

> transitionGraph(oneFinalStateNFA(nfa));
 

Plot_2d
 

> nfa:=randomNFA(7,3,2);
 

`:=`(nfa, NFA({q0, q1, q2, q3, q4, q5, q6}, {a3, a1, a2}, TABLE([(q0, lambda) = {q6}, (q3, lambda) = {q0}, (q0, a3) = {q1, q2, q4, q6}, (q2, lambda) = {q5}, (q0, a1) = {q5, q6}, (q1, lambda) = {q0}]),...
`:=`(nfa, NFA({q0, q1, q2, q3, q4, q5, q6}, {a3, a1, a2}, TABLE([(q0, lambda) = {q6}, (q3, lambda) = {q0}, (q0, a3) = {q1, q2, q4, q6}, (q2, lambda) = {q5}, (q0, a1) = {q5, q6}, (q1, lambda) = {q0}]),...
(6.4.2)
 

> transitionGraph(nfa);
 

Plot_2d
 

> type(nfa,NFA);
 

true (6.4.3)
 

Simplify