Example #2 

> ###############
### Problem 1
###############
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({q0, q1, q2, q3}, {a1, a2, a3}, TABLE([(q3, a3) = q0, (q0, a2) = q1, (q0, a3) = q2, (q3, a2) = q1, (q1, a3) = q3, (q3, a1) = q3, (q1, a2) = q3, (q2, a1) = q2, (q1, a1) = q2, (q2, a3) = q...
`:=`(dfa, DFA({q0, q1, q2, q3}, {a1, a2, a3}, TABLE([(q3, a3) = q0, (q0, a2) = q1, (q0, a3) = q2, (q3, a2) = q1, (q1, a3) = q3, (q3, a1) = q3, (q1, a2) = q3, (q2, a1) = q2, (q1, a1) = q2, (q2, a3) = q...
`:=`(dfa, DFA({q0, q1, q2, q3}, {a1, a2, a3}, TABLE([(q3, a3) = q0, (q0, a2) = q1, (q0, a3) = q2, (q3, a2) = q1, (q1, a3) = q3, (q3, a1) = q3, (q1, a2) = q3, (q2, a1) = q2, (q1, a1) = q2, (q2, a3) = q...
(17.2.1)
 

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

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

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

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

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

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

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

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

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

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

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

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

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

>