MultiTape Turing Machines 

> Q:={q0,q1,q2}:
Sig:={a,b}:
Gam:={a,b,\Delta}:
F:={q1}:
delta:=table():
delta[(q0,[a,a])]:=[q2,[b,b],['R','S']]:
delta[(q0,[b,b])]:=[q0,[b,a],['R','L']]:
delta[(q0,[\Delta,a])]:=[q1,[\Delta,b],['L','L']]:
delta[(q0,[b,\Delta])]:=[q1,[\Delta,b],['R','R']]:
tm3:=mkDTMmT(Q,Sig,Gam,op(delta),q0,\Delta,F,{});
 

`:=`(tm3, DTMmT({q0, q2, q1}, {a, b}, {Delta, a, b}, TABLE([(q0, [b, Delta]) = [q1, [Delta, b], [R, R]], (q0, [a, a]) = [q2, [b, b], [R, S]], (q0, [b, b]) = [q0, [b, a], [R, L]], (q0, [Delta, a]) = [q...
`:=`(tm3, DTMmT({q0, q2, q1}, {a, b}, {Delta, a, b}, TABLE([(q0, [b, Delta]) = [q1, [Delta, b], [R, R]], (q0, [a, a]) = [q2, [b, b], [R, S]], (q0, [b, b]) = [q0, [b, a], [R, L]], (q0, [Delta, a]) = [q...
`:=`(tm3, DTMmT({q0, q2, q1}, {a, b}, {Delta, a, b}, TABLE([(q0, [b, Delta]) = [q1, [Delta, b], [R, R]], (q0, [a, a]) = [q2, [b, b], [R, S]], (q0, [b, b]) = [q0, [b, a], [R, L]], (q0, [Delta, a]) = [q...
(13.3.1)
 

> type(tm3,DTM);
 

true (13.3.2)
 

> transitionGraph(tm3);
 

Plot_2d
 

> stringVerificationDTM(tm3,[[b,b,a],[b,b]],`walk`);
 

Accepted (13.3.3)
 

> walk;
 

[[q0, b, b, a], [q0, b, b]] => [[b, q0, b, a], [q0, Delta, a, b]] => [[b, Delta, q1, a], [b, q1, a, b]] (13.3.4)
 

>