@model<tsec> | | def main() | | call init_membrane_structure(); | call init_first_alphabet(m,n); | call init_second_alphabet(m,n); | call init_environment(m,n); | call init_multisets(m); | call init_rules(m,n); | call define_input(); | | | def init_membrane_structure() | | @mu = [ [ ]’1 [ ]’2 [ ]’3 ]’0; | | | /* @ms1 is *$∖Gamma_0 = ∖Gamma∖setminus∖Gamma_1$*), including *$∖Sigma∖cup∖mathcalE$*) */ | /* Some special symbols as a bar, tilde, hat or prime are replaced in | P-Lingua plain text file with suffixes b (bar), t (tilde), h (hat) or | p (prime), respectively. Thus, *$∖hatA'$*) is written as Ahp ("A hat prime").*/ | def init_first_alphabet(m,n) | | @ms1 += Ai,Abi,Abpi,Ahi,Ahpi,Bi,Bbi,Bbpi, | Bhi,Bhpi,Cbi,Ti,Tbi,Fi,Fbi,ai, | api,bi,bpi,ci,ti,fi,hi,yi,si, | vi,wi,zi : 1<=i<=n; | @ms1 += Dbi,j,qi,j,ri,j,ui,j : 1<=j<=n,1<=i<=n; | @ms1 += Dbi,n+1 : 1<=i<=n+1; | @ms1 += gi,j,k,gbi,j,k : 1<=k<=n,1<=j<=m,1<=i<=n; | @ms1 += Ei,j,Ebi,j,ei,j,ebi,j,lj,i : 1<=j<=m,1<=i<=n; | @ms1 += lj,lbj,lj,0,Ej : 1<= j <= m; | @ms1 += An+1,Abn+1,Bn+1,Bbn+1,Cbn+1,Em+1, | S,p,yes,no; | | /* Input alphabet *$∖Sigma$*) */ | @ms1 += xi,j,nxi,j : 1<=j<=m,1<=i<=n; | | /* Environment alphabet *$∖mathcalE$*) */ | @ms1 += Ati,Bti,abi,ati,bbi,bti,cbi,cti,dti, | tbi,fbi,sti,vbi,vti,n+1,wti,ybi,yti, | zti : 1<=i<=n; | @ms1 += rbi,j,rti,j,uti,j,vti,j : 1<=j<=n,1<=i<=n; | @ms1 += gpi,j,k,gbpi,j,k : 0<=k<=n,1<=j<=m,1<=i<=n; | @ms1 += lbj,k : 0<=k<=n,1<=j<=m; | @ms1 += ali,albi : 0<=i<=4*n+3*m+4; | @ms1 += E0; | | | def init_second_alphabet(m,n) | | @ms2 += Tpi,Fpi : 1<=i<=n; | @ms2 += Api,Bpi : 2<=i<=n+1; | | | def init_environment(m,n) | | @ms(0) += Ati,Bti,abi,ati,bbi,bti,cbi,cti, | dti,tbi,fbi,sti,vbi,vti,n+1,wti, | ybi,yti,zti : 1<=i<=n; | @ms(0) += rbi,j,rti,j,uti,j,vti,j : 1<=j<=n,1<=i<=n; | @ms(0) += gpi,j,k,gbpi,j,k : 0<=k<=n,1<=j<=m,1<=i<=n; | @ms(0) += lbj,k : 0<=k<=n,1<=j<=m; | @ms(0) += ali,albi : 0<=i<=4*n+3*m+4; | @ms(0) += E0; | | | def init_multisets(m) | | @ms(1) = A1,B1; | @ms(2) = Ab1,Bb1,Cb1,Db1,1; | @ms(3) = p,al0; | @ms(3) += li,0 : 1<=i<=m; | | | def init_rules(m,n) | | | /* r_1,i */ [Ai]’1 [Abi]’2 –> [Abi]’1 [Ahi]’2; | /* r_2,i */ [Api]’1 [Abi]’2 –> [Abpi]’1 [Ahpi]’2; | /* r_3,i */ [Bi]’1 [Bbi]’2 –> [Bbi]’1 [Bhi]’2; | /* r_4,i */ [Bpi]’1 [Bbi]’2 –> [Bbpi]’1 [Bhpi]’2; | /* r_5,i */ [Cbi]’2 [vbi]’0 –> [vi]’2 [ ]’0; | /* r_6,i,j */ [Dbi,j]’2 [vti,j]’0 –> [qi,j]’2 [ ]’0 :1<=j<=n; | /* r_7,i */ [Ti]’1 [ti]’2 –> [ti]’1 [ ]’2; | /* r_8,i */ [Tpi]’1 [ti]’2 –> [ti]’1 [ ]’2; | /* r_9,i */ [Fi]’1 [fi]’2 –> [fi]’1 [ ]’2; | /* r_10,i */ [Fpi]’1 [fi]’2 –> [fi]’1 [ ]’2; | : 1<=i<=n; | /* r_11,i */ [Abi]’1 [Ati]’0 –> [ai,api]’1 [ ]’0 : 1<=i<=n; | /* r_12,i */ [Abpi]’1 [Ati]’0 –> [ai,api]’1 [ ]’0 :2<=i<=n; | /* r_13,i */ [Bbi]’1 [Bti]’0 –> [bi,bpi]’1 [ ]’0 : 1<=i<=n; | /* r_14,i */ [Bbpi]’1 [Bti]’0 –> [bi,bpi]’1 [ ]’0 :2<=i<=n; | | /* r_15,i */ [Ahi]’2 [Ati]’0 –> [Ai]’2 [ ]’0 : 1<=i<=n; | /* r_16,i */ [Ahpi]’2 [Ati]’0 –> [Api]’2 [ ]’0 : 2<=i<=n; | /* r_17,i */ [Bhi]’2 [Bti]’0 –> [Bi]’2 [ ]’0 : 1<=i<=n; | /* r_18,i */ [Bhpi]’2 [Bti]’0 –> [Bpi]’2 [ ]’0 : 2<=i<=n; | /* r_19,i */ [vi]’2 [ybi]’0 –> [yi*2]’2 [ ]’0 : 1<=i<=n; | /* r_20 */ [q1,1]’2 [rb1,1]’0 –> [r1,1]’2 [ ]’0; | /* r_21,i,j */ [qi,j]’2 [rbi,j]’0 –> [ri,j*2]’2 [ ]’0 | : 2<=j<=n, 1<=i<=n; | | | /* r_22,i */ [ti]’1 [tbi]’0 –> [Ti,Tpi]’1 [ ]’0; | /* r_23,i */ [fi]’1 [fbi]’0 –> [Fi,Fpi]’1 [ ]’0; | : 1<=i<=n; | | /* r_24,i */ [Ai]’2 [cbi]’0 –> [ci]’2 [ ]’0 : 1<=i<=n; | /* r_25,i */ [Api]’2 [cti]’0 –> [ci]’2 [ ]’0 : 2<=i<=n; | /* r_26,i */ [Bi]’2 [cbi]’0 –> [ci]’2 [ ]’0 : 1<=i<=n; | /* r_27,i */ [Bpi]’2 [cti]’0 –> [ci]’2 [ ]’0 : 2<=i<=n; | | /* r_28,i */ [ai]’1 [abi]’0 –> [Ti,Ai+1]’1 [ ]’0 : 1<=i<=n; | /* r_29,i */ [api]’1 [ati]’0 –> [Fpi,Api+1]’1 [ ]’0 | : 1<=i<=n; | | | /* r_30,i */ [bi]’1 [bbi]’0 –> [Bi+1,S]’1 [ ]’0; | /* r_31,i */ [bpi]’1 [bti]’0 –> [Bpi+1]’1 [ ]’0; | /* r_32,i */ [yi]’2 [yti]’0 –> [zi,wi]’2 [ ]’0; | /* r_33,i,j */ [ri,j]’2 [rti,j]’0 –> [si,ui,j]’2 [ ]’0 | : 1<=j<=n; | /* r_34,i */ [wi]’2 [wti]’0 –> [Abi+1]’2 [ ]’0; | /* r_35,i */ [ci]’2 [dti]’0 –> [Bbi+1]’2 [ ]’0; | /* r_36,i */ [zi]’2 [zti]’0 –> [Cbi+1]’2 [ ]’0; | /* r_37,i */ [si]’2 [sti]’0 –> [ti,fi]’2 [ ]’0; | : 1<=i<=n; | /* r_38,j */ [u1,j]’2 [ut1,j]’0 –> [Db1,j+1,Db2,j+1]’2 [ ]’0 | : 1<=j<=n; | /* r_39,i,j */ [ui,j]’2 [uti,j]’0 –> [Dbi+1,j+1]’2 [ ]’0 | : 2<=j<=n, 2<=i<=n; | | /* r_40 */ [S]’1 –> [ ]’1 [ ]’1; | | /* r_41,i */ [Dbi,n+1]’2 [vti,n+1]’0 –> [hi*2]’2 [ ]’0 | : 1<=i<=n; | | /* r_42 */ [An+1]’1 [Abn+1]’2 –> [E1]’1 [ ]’2; | /* r_43 */ [Apn+1]’1 [Bbn+1]’2 –> [E1]’1 [ ]’2; | | | /* r_44,i */ [Ti,Tpi]’1 [hi]’2 –> [Tbi]’1 [ ]’2; | /* r_45,i */ [Fi,Fpi]’1 [hi]’2 –> [Fbi]’1 [ ]’2; | : 1<=i<=n; | | | /* r_46,i,j */ [xi,j]’3 [gpi,j,0]’0 –> [gi,j,1*2]’3 [ ]’0; | /* r_47,i,j */ [xbi,j]’3 [gbpi,j,0]’0 –> [gbi,j,1*2]’3 [ ]’0; | | /*r_48,i,j,k*/ [gi,j,k]’3 [gpi,j,k]’0 –> [gi,j,k+1*2]’3 [ ]’0; | /*r_49,i,j,k*/ [gbi,j,k]’3 [gbpi,j,k]’0–>[gbi,j,k+1*2]’3 [ ]’0; | : 1<=k<=n-1; | /* r_50,i,j */ [gi,j,n]’3 [gpi,j,n]’0 –> [ei,j]’3 [ ]’0; | /* r_51,i,j */ [gbi,j,n]’3 [gbpi,j,n]’0 –> [ebi,j]’3 [ ]’0; | : 1<=j<=m, 1<=i<=n; | /* r_52,j,k */ [lj,k]’3 [lbj,k]’0 –> [lj,k+1*2]’3 [ ]’0 | : 0<=k<=n-1, 1<=j<=m; | /* r_53,j */ [lj,n]’3 [lbj,n]’0 –> [lj]’3 [ ]’0 : 1<=j<=m; | | | /* r_54,i,j */ [Tbi,Ej]’1 [ei,j]’3 –> [Ei,j]’1 [ ]’3; | /* r_55,i,j */ [Fbi,Ej]’1 [ebi,j]’3 –> [Ebi,j]’1 [ ]’3; | /* r_56,i,j */ [Ei,j]’1 [lj]’3 –> [li,j]’1 [Ei,j]’3; | /* r_57,i,j */ [Ebi,j]’1 [lj]’3 –> [lbi,j]’1 [Ebi,j]’3; | /* r_58,i,j */ [li,j]’1 [Ei,j]’3 –> [Tbi,Ej+1]’1 [ ]’3; | /* r_59,i,j */ [lbi,j]’1 [Ebi,j]’3 –> [Fbi,Ej+1]’1 [ ]’3; | : 1<=j<=m, 1<=i<=n; | | /*r_60,i*/ [ali]’3 [albi]’0–>[ali+1]’3 [ ]’0 : 0<=i<=4*n+3*m+3; | | /* r_61*/ [Em+1]’1 [p]’3 –> [ ]’1 [yes]’3; | | /* r_62*/ [yes]’3 [ ]’0 –> [ ]’3 [yes]’0; | /* r_63*/ [al4*n+3*m+4,p]’3 [ ]’0 –> [ ]’3 [no]’0; | | | /* Input cell: 3 */ | def define_input() | | @ms(3) += xbvariablei,clausei*valni, | xvariablei,clausei*vali : 1<=i<=nvals; | |
|