NPDA
| > | ## L={a^n b^n, n>0}
npda01:= mkNPDA({q0, q1, q3}, {a, b}, {A, C, B, D, Z}, table([(q1, lambda, D) = {[q1, [A, B]], [q1, [A, C]]}, (q1, b, B) = {[q1, lambda]}, (q1, a, A) = {[q1, lambda]}, (q1, lambda, C) = {[q1, [D, B]]}, (q0, lambda, Z) = {[q1, [D, Z]]}, (q1, lambda, Z) = {[q3, lambda]}]), q0, Z, {q3}); transitionGraph(npda01); |
![]() |
| > | stringVerificationPDA(npda01,[a,a,a,b,b,b]);
stringVerificationPDA(npda01,[a,b,a,b]); stringVerificationPDA(npda01,[b,a,a,b]); |
| (11.2.1) |
| (11.2.1) |
| (11.2.1) |
| > | [{q_f, q_1, q_0},{a, b},{S1a, S1b, S_1, z_0, S},table([(q_1, lambda, S) = {[q_1, [S1a, S_1]], [q_1, [S1a, S1b]]}, (q_1, b, S1b) = {[q_1, lambda]}, (q_1, a, S1a) = {[q_1, lambda]}, (q_1, lambda, S_1) = {[q_1, [S, S1b]]}, (q_0, lambda, z_0) = {[q_1, [S, z_0]]}, (q_1, lambda, z_0) = {[q_f, lambda]}]),q_0,z_0,{q_f}]; |
| (11.2.2) |
| > | InternalStates:={q0,q1,q2,q3,q4}:
Alphabet:={a,b}: StackAlphabet:={0,1}: delta:=`delta`: delta[(q0,a,0)]:={[q1,[1,0]],[q3,\lambda],[q4,[0]]}: delta[(q0,\lambda,0)]:={[q3,\lambda],[q3,0]}: delta[(q1,a,1)]:={[q1,[1,1,0]]}: delta[(q1,b,1)]:={[q2,\lambda]}: delta[(q2,b,1)]:={[q2,\lambda]}: delta[(q2,\lambda,0)]:={[q3,[]]}: ## [] is the same as \lambda StackStartSymbol:=0: InitialState := q0: FinalStates:={q2,q3}: npda01:=mkNPDA(InternalStates,Alphabet,StackAlphabet,op(delta), InitialState,StackStartSymbol,FinalStates); |
| (11.2.3) |
| > | type(npda01,NPDA); |
| (11.2.4) |
| > | transitionGraph(npda01); |
![]() |
| > | npda02:=PDA2CNF(npda01);
transitionGraph(npda02); |
![]() |
| > |
| > |