Convert DPDA To NPDA 

> InternalStates:={q0,q1,q2,q3}:
Alphabet:={a,b}:
StackAlphabet:={0,1,z0}:
delta:=table():
delta[(q0,a,0)]:=[q1,[1,0,1]]:
delta[(q0,b,0)]:=[q1,1]:
delta[(q1,a,1)]:=[q1,[1,1]]:
delta[(q1,a,0)]:=[q1,\lambda]:
delta[(q1,b,0)]:=[q2,[0,0]]:
delta[(q1,b,1)]:=[q2,\lambda]:
delta[(q2,b,1)]:=[q2,\lambda]:
delta[(q2,\lambda,0)]:=[q3,[]]:
InitialState := q0:
StackStartSymbol:=z0:
FinalStates:={q3}:
dpda01:=mkDPDA(InternalStates,Alphabet,StackAlphabet,op(delta),
 InitialState,StackStartSymbol,FinalStates);
 

`:=`(dpda01, DPDA({q0, q1, q2, q3}, {a, b}, {0, 1, z0}, TABLE([(q2, b, 1) = [q2, lambda], (q2, lambda, 0) = [q3, lambda], (q0, a, 0) = [q1, [1, 0, 1]], (q0, b, 0) = [q1, 1], (q1, a, 1) = [q1, [1, 1]],...
`:=`(dpda01, DPDA({q0, q1, q2, q3}, {a, b}, {0, 1, z0}, TABLE([(q2, b, 1) = [q2, lambda], (q2, lambda, 0) = [q3, lambda], (q0, a, 0) = [q1, [1, 0, 1]], (q0, b, 0) = [q1, 1], (q1, a, 1) = [q1, [1, 1]],...
`:=`(dpda01, DPDA({q0, q1, q2, q3}, {a, b}, {0, 1, z0}, TABLE([(q2, b, 1) = [q2, lambda], (q2, lambda, 0) = [q3, lambda], (q0, a, 0) = [q1, [1, 0, 1]], (q0, b, 0) = [q1, 1], (q1, a, 1) = [q1, [1, 1]],...
(11.3.1)
 

> emptyStackPDA2finalStatePDA(dpda01);
 

NPDA({q0, q0_1, q_f_2, q1, q2, q3}, {a, b}, {0, 1, z0, z0_3}, TABLE([(q2, b, 1) = {[q2, lambda]}, (q2, lambda, z0_3) = {[q_f_2, lambda]}, (q2, lambda, 0) = {[q3, lambda]}, (q3, lambda, z0_3) = {[q_f_2...
NPDA({q0, q0_1, q_f_2, q1, q2, q3}, {a, b}, {0, 1, z0, z0_3}, TABLE([(q2, b, 1) = {[q2, lambda]}, (q2, lambda, z0_3) = {[q_f_2, lambda]}, (q2, lambda, 0) = {[q3, lambda]}, (q3, lambda, z0_3) = {[q_f_2...
NPDA({q0, q0_1, q_f_2, q1, q2, q3}, {a, b}, {0, 1, z0, z0_3}, TABLE([(q2, b, 1) = {[q2, lambda]}, (q2, lambda, z0_3) = {[q_f_2, lambda]}, (q2, lambda, 0) = {[q3, lambda]}, (q3, lambda, z0_3) = {[q_f_2...
NPDA({q0, q0_1, q_f_2, q1, q2, q3}, {a, b}, {0, 1, z0, z0_3}, TABLE([(q2, b, 1) = {[q2, lambda]}, (q2, lambda, z0_3) = {[q_f_2, lambda]}, (q2, lambda, 0) = {[q3, lambda]}, (q3, lambda, z0_3) = {[q_f_2...
NPDA({q0, q0_1, q_f_2, q1, q2, q3}, {a, b}, {0, 1, z0, z0_3}, TABLE([(q2, b, 1) = {[q2, lambda]}, (q2, lambda, z0_3) = {[q_f_2, lambda]}, (q2, lambda, 0) = {[q3, lambda]}, (q3, lambda, z0_3) = {[q_f_2...
(11.3.2)
 

> DPDA2NPDA(dpda01);
 

NPDA({q0, q1, q2, q3}, {a, b}, {0, 1, z0}, TABLE([(q2, b, 1) = {[q2, lambda]}, (q2, lambda, 0) = {[q3, lambda]}, (q0, a, 0) = {[q1, [1, 0, 1]]}, (q0, b, 0) = {[q1, 1]}, (q1, a, 1) = {[q1, [1, 1]]}, (q...
NPDA({q0, q1, q2, q3}, {a, b}, {0, 1, z0}, TABLE([(q2, b, 1) = {[q2, lambda]}, (q2, lambda, 0) = {[q3, lambda]}, (q0, a, 0) = {[q1, [1, 0, 1]]}, (q0, b, 0) = {[q1, 1]}, (q1, a, 1) = {[q1, [1, 1]]}, (q...
NPDA({q0, q1, q2, q3}, {a, b}, {0, 1, z0}, TABLE([(q2, b, 1) = {[q2, lambda]}, (q2, lambda, 0) = {[q3, lambda]}, (q0, a, 0) = {[q1, [1, 0, 1]]}, (q0, b, 0) = {[q1, 1]}, (q1, a, 1) = {[q1, [1, 1]]}, (q...
(11.3.3)
 

>