Example #4 

> InternalStates:={q0,q1,q2,q3}:
Alphabet:={a,b}:
delta:=table():
delta[(q0,a)]:=q0:
delta[(q0,b)]:=q1:
delta[(q1,a)]:=q2:
delta[(q1,b)]:=q3:
delta[(q2,a)]:=q2:
delta[(q2,b)]:=q3:
delta[(q3,a)]:=q3:
delta[(q3,b)]:=q3:
InitialState := q0:
FinalStates:={q2}:
dfa:=mkDFA(InternalStates,Alphabet,op(delta),InitialState,FinalStates);
partitionDFA(dfa);
 

`:=`(dfa, DFA({q2, q0, q3, q1}, {a, b}, TABLE([(q3, b) = q3, (q2, b) = q3, (q0, a) = q0, (q3, a) = q3, (q0, b) = q1, (q1, a) = q2, (q2, a) = q2, (q1, b) = q3]), q0, {q2}))
`:=`(dfa, DFA({q2, q0, q3, q1}, {a, b}, TABLE([(q3, b) = q3, (q2, b) = q3, (q0, a) = q0, (q3, a) = q3, (q0, b) = q1, (q1, a) = q2, (q2, a) = q2, (q1, b) = q3]), q0, {q2}))
(17.4.1)
 

{{q3}, {q1}, {q0}, {q2}} (17.4.1)
 

> InternalStates:={q0,q1,q2}:
Alphabet:={a,b}:
delta:=table():
delta[(q0,a)]:=q1:
delta[(q0,b)]:=q2:
delta[(q1,a)]:=q2:
delta[(q1,b)]:=q1:
delta[(q2,a)]:=q2:
delta[(q2,b)]:=q2:
InitialState := q0:
FinalStates:={q1}:
dfa:=mkDFA(InternalStates,Alphabet,op(delta),InitialState,FinalStates);
partitionDFA(dfa);
 

`:=`(dfa, DFA({q2, q0, q1}, {a, b}, TABLE([(q2, b) = q2, (q0, a) = q1, (q0, b) = q2, (q1, a) = q2, (q2, a) = q2, (q1, b) = q1]), q0, {q1}))
`:=`(dfa, DFA({q2, q0, q1}, {a, b}, TABLE([(q2, b) = q2, (q0, a) = q1, (q0, b) = q2, (q1, a) = q2, (q2, a) = q2, (q1, b) = q1]), q0, {q1}))
(17.4.2)
 

{{q1}, {q0}, {q2}} (17.4.2)
 

>