Research Article

The Computational Complexity of Tissue P Systems with Evolutional Symport/Antiport Rules

Algorithm 4

P-Lingua translation for SAT solution.
@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();
definit_membrane_structure()
@mu = [  [  ]’1  [  ]’2  [  ]’3  ]’0;
/* @ms1 is  *$Gamma_0  =  GammasetminusGamma_1$*),including  *$SigmacupmathcalE$*) */
/* 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;