NFA2DFA 

> #L={a^3} union {a^(2n):n>=1}
nfa1:=mkNFA([q0,q1,q2,q3,q4,q5],[a,b],table([(q0,a)={q1,q4},(q1,a)={q2},(q2,a)={q3},(q4,a)={q5},(q5,a)={q4}]),q0,[q3,q5]);
 

`:=`(nfa1, NFA({q0, q1, q2, q5, q3, q4}, {a, b}, TABLE([(q2, a) = {q3}, (q0, a) = {q1, q4}, (q5, a) = {q4}, (q1, a) = {q2}, (q4, a) = {q5}]), q0, {q5, q3}))
`:=`(nfa1, NFA({q0, q1, q2, q5, q3, q4}, {a, b}, TABLE([(q2, a) = {q3}, (q0, a) = {q1, q4}, (q5, a) = {q4}, (q1, a) = {q2}, (q4, a) = {q5}]), q0, {q5, q3}))
(6.3.1)
 

> transitionGraph(nfa1);
 

Plot_2d
 

> transitionGraph(complementNFA(nfa1));
 

Plot_2d
 

> transitionGraph(NFA2DFA(nfa1));
 

Plot_2d
 

> #L={a.b.a.(a+b)^*}
nfa2:=mkNFA([q0,q1,q2,q3],[a,b],table([(q0,a)={q1},(q1,b)={q2},(q2,a)={q3},(q3,a)={q3},(q3,b)={q3}]),q0,[q3]):
 

> transitionGraph(nfa2);
 

Plot_2d
 

> transitionGraph(NFA2DFA(nfa2));
 

Plot_2d
 

> nfa:=mkNFA([q0,q1,q2,q3,q4,q5,q6],[a,b],table([(q0,a)={q1},(q1,a)={q4},(q1,b)={q2},(q2,b)={q3},(q3,b)={q1},(q4,a)={q0},(q4,b)={q5},(q5,b)={q6},(q6,b)={q4}]),q0,[q1,q4,q5]):
 

> dfa:=NFA2DFA(nfa);
 

`:=`(dfa, DFA({{}, {q0}, {q3}, {q5}, {q1}, {q2}, {q4}, {q6}}, {a, b}, TABLE([({q5}, a) = {}, ({q6}, b) = {q4}, ({q0}, b) = {}, ({q4}, a) = {q0}, ({}, b) = {}, ({q2}, b) = {q3}, ({q1}, a) = {q4}, ({q1}...
`:=`(dfa, DFA({{}, {q0}, {q3}, {q5}, {q1}, {q2}, {q4}, {q6}}, {a, b}, TABLE([({q5}, a) = {}, ({q6}, b) = {q4}, ({q0}, b) = {}, ({q4}, a) = {q0}, ({}, b) = {}, ({q2}, b) = {q3}, ({q1}, a) = {q4}, ({q1}...
`:=`(dfa, DFA({{}, {q0}, {q3}, {q5}, {q1}, {q2}, {q4}, {q6}}, {a, b}, TABLE([({q5}, a) = {}, ({q6}, b) = {q4}, ({q0}, b) = {}, ({q4}, a) = {q0}, ({}, b) = {}, ({q2}, b) = {q3}, ({q1}, a) = {q4}, ({q1}...
`:=`(dfa, DFA({{}, {q0}, {q3}, {q5}, {q1}, {q2}, {q4}, {q6}}, {a, b}, TABLE([({q5}, a) = {}, ({q6}, b) = {q4}, ({q0}, b) = {}, ({q4}, a) = {q0}, ({}, b) = {}, ({q2}, b) = {q3}, ({q1}, a) = {q4}, ({q1}...
(6.3.2)
 

> nfa := mkNFA([q0, q1, q2, q3, q4, q5], [a1, a2, a3], table([(q1, a2) = {q3}, (q1, a1) = {q0}, (q0, a2) = {q0}, (q3, lambda) = {q0, q3}, (q2, a1) = {q3}, (q0, a1) = {q0}]), q0, [q3, q0]):
 

> dfa:=NFA2DFA(nfa);
 

`:=`(dfa, DFA({{}, {q0}}, {a1, a2, a3}, TABLE([({q0}, a2) = {q0}, ({}, a3) = {}, ({}, a2) = {}, ({q0}, a1) = {q0}, ({q0}, a3) = {}, ({}, a1) = {}]), {q0}, {{q0}}))
`:=`(dfa, DFA({{}, {q0}}, {a1, a2, a3}, TABLE([({q0}, a2) = {q0}, ({}, a3) = {}, ({}, a2) = {}, ({q0}, a1) = {q0}, ({q0}, a3) = {}, ({}, a1) = {}]), {q0}, {{q0}}))
(6.3.3)
 

>