Example #3 

 

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

`:=`(dfa, DFA({q2, q0, q3, q1}, {a1, a2, a3}, TABLE([(q2, a1) = q2, (q1, a1) = q2, (q2, a3) = q2, (q0, a3) = q2, (q1, a3) = q3, (q0, a1) = q0, (q3, a1) = q3, (q0, a2) = q1, (q1, a2) = q3, (q2, a2) = q...
`:=`(dfa, DFA({q2, q0, q3, q1}, {a1, a2, a3}, TABLE([(q2, a1) = q2, (q1, a1) = q2, (q2, a3) = q2, (q0, a3) = q2, (q1, a3) = q3, (q0, a1) = q0, (q3, a1) = q3, (q0, a2) = q1, (q1, a2) = q3, (q2, a2) = q...
`:=`(dfa, DFA({q2, q0, q3, q1}, {a1, a2, a3}, TABLE([(q2, a1) = q2, (q1, a1) = q2, (q2, a3) = q2, (q0, a3) = q2, (q1, a3) = q3, (q0, a1) = q0, (q3, a1) = q3, (q0, a2) = q1, (q1, a2) = q3, (q2, a2) = q...
(17.3.1)
 

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

>