1 Introduction

P systems with active membranes are one of the models in the vast and diverse family of P systems, initially founded by Păun [14] with the aim of defining a parallel, nondeterministic, synchronous, and distributed computational model, inspired by the structure and functioning of living cells.

In this kind of P systems, the space is delimited in different (possibly nested) regions via membranes, mimicking the way cellular membranes separate the inner part of a cell from the external environment. The biological inspiration does not end here: inside each membrane multiple objects, representing chemical substances, are transformed by rewriting rules, mimicking biochemical reactions. Moreover, each membrane may have an associated electrical charge, which typically can be negative, positive, or neutral that affects the applicability of the rules embedded in the membrane. The communication between different regions of space is ensured by the ability of substances to move in and out of membranes (also depending on the membrane charge) and, possibly, to even dissolve a membrane, making all its content “fall out” in the containing region. The name “P systems with active membranes” stems from the fact that membranes play an active role during the computations, either by influencing the rules to be applied through charges, or by modifying the membrane hierarchy through membrane division or dissolution.

During the two decades following their introduction, P systems with active membranes have been employed to solve classically intractable problems, such as \({\textsf {NP}}\)-complete ones [15, 23], problems in the class \({\textsf {PSPACE}}\) [2, 19, 20] or, more recently, problems in the complexity class \(\textsf {P}^{\#\textsf {P}}\) and in the entire counting hierarchy [6]. To reach these results, the simulation of Turing machines (TM) provides an important building block. In particular, the construction of P systems simulating TM using as few membranes (or cells) as possible and limiting the depth of the system is one of the “tricks” that allows the nesting of multiple machines to solve problems in large complexity classes. For example, nesting of non-deterministic machines (where the non-determinism is simulated by membrane division) and a counting mechanism allow to characterize \(\textsf {P}^{\#\textsf {P}}\), the class of all problems solvable by a deterministic TM with access to a \(\#\textsf {P}\) oracle [6, 8]. The same ideas can be applied to tissue P systems [10], where the different communication topology makes it even more important to keep TM simulations compact [7]. Other works consider how various features of P systems with active membranes influence their ability to attack computationally hard problems: for instance, considering systems without electrical charges some authors investigated the role of elementary division [12], dissolution rules [3, 4] or cooperating rules [21, 21, 22] from the computational efficiency point of view.

More recently, a definition of space complexity for P systems with active membranes has been proposed in [18] (and refined in [5]). It is known that any Turing machine working in space \(\varOmega (n)\) can be simulated with a polynomial space overhead [1]. Considering appropriate restricted uniformity conditions [11, 13], it is possible to prove that \({\textsf {DLOGTIME}}\)–uniform P systems with active membranes only need a logarithmic amount of space to solve all problems in the class \({\textsf {PSPACE}}\), as proved in [9].

The P conjecture is a long-standing open problem in membrane computing, first presented in 2005 [16, Problem F] that, in its essence, asks what is the power of one charge when compared to two charges. We feel that one important step to determine the computational power of active membrane systems without charges and with membrane dissolution is to see which is the minimal system able to simulate a deterministic polynomial-time TM. Here, we show that a shallow system is sufficient to perform such a simulation by delegating only a minimal amount of work to the Turing machines involved in the uniformity condition. Hopefully, this construction will allow us to define systems in which different TM can be “embedded” at different levels in a large membrane structure, thus making possible to mimic the existing constructions performed for P systems with charges.

One specific application of this construction is the replication of the result presented in [6] concerning P systems with charges to the case of P systems without charges. In that paper we presented a construction of “nested oracles”, each of them being, essentially, a simulation of a non-deterministic TM with some additional “plumbing” to perform some kind of interaction between the different membranes. The ability to perform this TM simulation without charges is an important step in porting the same construction to an apparently weaker model of P systems.

This paper is organized as follows. Section 2 will recall some basic notions on P systems. The main construction and result is presented in Sect. 3, while ideas for further research are presented in Sect. 4.

2 Basic notions

For an introduction to membrane computing and the related notions of formal language theory and multiset processing, we refer the reader to The Oxford Handbook of Membrane Computing [17]. Here, we just recall the formal definition of P systems with active membranes, without charges [15, 24].

Definition 1

A polarizationless P system with active membranes with dissolution rules, of initial degree \(d \ge 1\), is a tuple

$$\begin{aligned} \varPi = (\varGamma , \varLambda , \mu , w_{h_1}, \ldots , w_{h_d}, R), \end{aligned}$$

where:

  • \(\varGamma \) is an alphabet, i.e. a finite non-empty set of symbols, usually called objects;

  • \(\varLambda \) is a finite set of labels;

  • \(\mu \) is a membrane structure (i.e. a rooted unordered tree, usually represented by nested brackets) consisting of d membranes labelled by elements of \(\varLambda \) in a one-to-one way;

  • \(w_{h_1}, \ldots , w_{h_d}\), with \(h_1, \ldots , h_d \in \varLambda \), are multisets (finite sets with multiplicity) of objects in \(\varGamma \), describing the initial contents of each of the d regions of \(\mu \);

  • R is a finite set of rules.

The rules in R are of the following types:

  1. (a)

    Object evolution rules, of the form \([a \rightarrow w]_{h}.\)

    They can be applied inside a membrane labelled by h and containing an occurrence of the object a; the object a is rewritten into the multiset w (i.e. a is removed from the multiset in h and replaced by the objects in w).

  2. (b)

    Send-in communication rules, of the form \(a \; [{}]_{h}^{} \rightarrow [{b}]_{h}^{}.\)

    They can be applied to a membrane labelled by h and such that the parent region, i.e. the one containing membrane h, contains an occurrence of the object a; the object a is sent into h, becoming b.

  3. (c)

    Send-out communication rules, of the form \([{a}]_{h}^{} \rightarrow [{}]_{h}^{} \; b\).

    They can be applied to a membrane labelled by h and containing an occurrence of the object a; the object a is sent out from h to the parent region, becoming b.

  4. (d)

    Dissolution rules, of the form \([{a}]_{h}^{} \rightarrow b\).

    They can be applied to any membrane except the outermost one labelled by h and containing an occurrence of the object a; the object a is sent out from h to the parent region becoming b, the membrane h ceases to exist and all the other objects it contains are sent into the parent region.

A computation step changes the current configuration of the system according to the following set of principles:

  • Each object and membrane can be subject to at most one rule per step, except for object evolution rules: inside each membrane, several evolution rules can be applied simultaneously.

  • The application of rules is maximally parallel: each object appearing on the left-hand side of evolution or communication rules must be subject to exactly one of them. Analogously, each membrane can only be subject to one communication or dissolution rule (types (b)–(d)) per computation step; for this reason, these rules will be called blocking rules in the rest of the paper. As a result, the only objects and membranes that do not evolve are those associated with no rule.

  • When several conflicting rules can be applied at the same time, a nondeterministic choice is performed; this implies that, in general, multiple possible configurations can be reached after a computation step.

  • In each computation step, all the chosen rules are applied simultaneously in an atomic way. However, to clarify the operational semantics, each computation step is conventionally described as a sequence of micro-steps, whereby each membrane evolves only after its internal configuration (including, recursively, the configurations of the membrane substructures it contains) has been updated.

  • Any object sent out from it cannot re-enter the system.

A halting computation of the P system \(\varPi \) is a finite sequence \(\varvec{\mathcal {C}}= (\mathcal {C}_0, \ldots , \mathcal {C}_k)\) of configurations, where \(\mathcal {C}_0\) is the initial configuration, every \(\mathcal {C}_{i+1}\) is reachable from \(\mathcal {C}_i\) via a single computation step, and no rules of \(\varPi \) are applicable in \(\mathcal {C}_k\).

P systems can be used as language recognizers by employing two distinguished objects \({\textsf {yes}}\) and \({\textsf {no}}\): we assume that all computations are halting, and that either one copy of object \({\textsf {yes}}\) or one of object \({\textsf {no}}\) is sent out from the outermost membrane, and only in the last computation step, to signal acceptance or rejection, respectively. If all computations starting from the same initial configuration are accepting, or all are rejecting, the P system is said to be confluent.

To solve decision problems (or, equivalently, decide languages), we use families of recognizer P systems \(\varvec{\varPi }= \{ \varPi _x : x \in \varSigma ^\star \}\). Each input x is associated with a P system \(\varPi _x\) deciding the membership of x in a language \(L \subseteq \varSigma ^\star \) by accepting or rejecting. The mapping \(x \mapsto \varPi _x\) must be efficiently computable for inputs of any length, as discussed in detail in [13].

Definition 2

A family of P systems \(\varvec{\varPi }= \{ \varPi _x : x \in \varSigma ^\star \}\) is (polynomial-time) uniform if the mapping \(x \mapsto \varPi _x\) can be computed by two polynomial-time deterministic Turing machines E and F as follows:

  • \(F(1^n) = \varPi _n\), where n is the length of the input x and \(\varPi _n\) is a common P system for all inputs of length n, with a distinguished input membrane.

  • \(E(x) = w_x\), where \(w_x\) is a multiset encoding the specific input x.

  • Finally, \(\varPi _x\) is simply \(\varPi _n\) with \(w_x\) added to a specific membrane, called the input membrane.

Any explicit encoding of \(\varPi _x\) is allowed as output of the construction, as long as it is at most polynomially shorter than the one where the rules are listed one by one, the membrane structure is represented in such a way that all membranes are listed one by one and their content is encoded in unary. This restriction is enforced to mimic a (hypothetical) realistic process of construction of the P systems, where membranes and objects are presumably placed in a constant amount during each construction step, and require actual physical space proportional to their number; see also [13] for further details on the encoding of P systems.

Among all possible uniformity conditions, obtained by imposing constrains on the Turing machines E and F, we are interested in \((\textsf {L},\textsf {L})\)-uniform families of P systems, where both the machine constructing the P system given the size of the input in unary and the machine encoding the input can only employ logarithmic space. This uniformity condition is weaker than the usual \((\textsf {P},\textsf {P})\)-uniformity, but it is needed to avoid that the computation which is intended to be performed by the P system is instead performed by the Turing machines E and F building it.

3 Simulation of polynomial-time Turing machines

The main idea of this section is to provide a simulation of a deterministic TM working in polynomial time by using a P system with only one level of nesting, i.e, by what is usually called a shallow P system.

A first observation is that two objects can meaningfully influence each other only through dissolution: while two objects might interfere due to the blocking nature of communication rules, any such interaction is actually not significant due to the confluence of the P system. Therefore, information between objects must be exchanged by performing dissolution, for example by having one of the objects “count” the steps needed before “falling out” in the parent region.

Let M be a polynomial-time deterministic TM having alphabet \(\varSigma \), set of states Q, and transition function \(\delta : Q \times \varSigma \rightarrow Q \times \varSigma \times \{-1,+1\}\). We assume that, for an input of length n machine M halts in time p(n) and, thus, it uses no more than \(p(n) + 1\) cells. We define a P system \(\varPi \) that simulates the computation of M in \(O(p(n)|\varSigma |)\) steps. That is, the simulation of every step of M will require a number of steps in \(\varPi \) that is proportional to the size of the alphabet of M, thus providing an efficient simulation, i.e. a simulation that is only polynomially slower than the simulated system in terms of number of steps.

The P system \(\varPi \) has \((p(n)+1)^2 + p(n)^2 + p(n) + 1\) labels, one for the skin membrane and two for each pair of time and position in the TM tape:

$$\begin{aligned} \varLambda =&\{0\} \cup \{(i,j) \;|\; i,j \in \{0,\ldots ,p(n)\}\}\\&\cup \{(i,j)' \;|\; i \in \{0,\ldots ,p(n)\}\; j \in \{0, \ldots , p(n) - 1\}\}. \end{aligned}$$

Since we assume that no kind of membrane division is present, in the following we can identify membranes and labels, since each label is used by exactly one membrane. The semantics of the labels is that a membrane with label (ij) will represent the i-th cell of the TM tape at time j. The additional membrane \((i,j)'\) is used while performing the transition between time j and \(j+1\), which also explains why the label is not present for time p(n).

Fig. 1
figure 1

The complete set of rules employed by the P system \(\varPi \) that simulates the Turing machine M, here given as a handy reference. The numbering is the same as the one used in the text when introducing each rule

The set of objects of the simulating P system will be:

$$\begin{aligned} \varGamma =&\{a_{i,j,k} \;|\; i,j \in \{0,\ldots ,p(n)\}, \; 0 \le k < m + 5, a \in \varSigma \} \\&\cup \{q_{i,j,k} \;|\; i,j \in \{0,\ldots ,p(n)\}, \; 0 \le k \le m + 5, q \in Q\} \\&\cup \{q_{i,j,k,a} \;|\; i,j \in \{0,\ldots ,p(n)\}, \; 0 \le k \le m + 5, \; q \in Q, a \in \varSigma \} \\&\cup \{a_i \;|\; a \in \varSigma , i \in \{0,\ldots ,p(n)\}\} \cup \{q^I\}, \end{aligned}$$

where \(m = |\varSigma |\) and \(q^I\) is the initial state of the TM. The first three sets of the union represent, respectively, the symbols on the tape, the state of the TM, and the state of the TM together with the symbol present under the tape head. The last two sets are only used to encode the initial configuration of the TM. Let \(a_1,a_2, \ldots , a_{p(n)}\) be the initial contents of the TM tape. It is encoded in the initial configuration of \(\varPi \) as the objects \(a_{1,1},a_{2,2}, \ldots , a_{p(n),p(n)}\) inside the outermost membrane (e.g. if the initial content of the tape is abba, then it will be encoded by the multiset \(a_1b_2b_3a_4\)). The initial state \(q^I\) is encoded as the object \(q^I\).

The rules of the P system performing the simulation of the TM M are presented both in the main text and grouped together in Fig. 1. The following rules send the objects representing the TM tape inside the corresponding membranes: the object \(a_i\) is sent into the membrane (i, 0). At the same time the object \(q^I\) is rewritten as \(q^I_{0,0,0}\):

$$\begin{aligned}&a_i \; [{}]_{(i,0)}^{} \rightarrow [{a_{i,0,0}}]_{(i,0)}^{}&\hbox { for}\ a \in \varSigma \end{aligned}$$
(1)
$$\begin{aligned}&[q^I \rightarrow q^I_{0,0,0}]_{0}. \end{aligned}$$
(2)

After this first “bookkeeping” step, the actual simulation of one TM step can start. The previous rules will not be further applied during the simulation. An example of simulation of one step of M by \(\varPi \) is presented in Fig. 2.

Fig. 2
figure 2

The simulation of one computation step of the TM M by means of the P system \(\varPi \). In this example the alphabet \(\varSigma \) is \(\{a,b\}\) and the tape contains four cells

Let \(\varphi \) be a bijection from \(\varSigma \) to \(\{1, \ldots , |\varSigma |\}\) providing a total ordering of the TM alphabet. The main idea is to have each object representing the symbol a written on position i at time j on the TM tape dissolving the membrane (ij) when its subscript is \(i, j, \varphi ^{}(a)\). This means that any other object present in the same membrane (in our case, the object representing the current state of the TM) can infer the symbol under the tape head and act accordingly. The evolution of the objects representing the tape content for the first \(m+1\) time steps of the simulation of each TM step is described by the following rules:

$$\begin{aligned}&[a_{i,j,k} \rightarrow a_{i,j,k+1}]_{(i.j)} \quad \hbox { for } 0 \le k < \varphi ^{}(a) \hbox { and } a \in \varSigma , \end{aligned}$$
(3)
$$\begin{aligned}&[{a_{i,j,k}}]_{(i,j)}^{} \rightarrow a_{i,j,k+1} \quad \hbox { for } k = \varphi ^{}(a) \hbox { and } a \in \varSigma , \end{aligned}$$
(4)
$$\begin{aligned}&[a_{i,j,k} \rightarrow a_{i,j,k+1}]_{0} \quad \hbox { for } \varphi ^{}(a) < k \le m \hbox { and } a \in \varSigma , \end{aligned}$$
(5)

where k goes from 0 to m and is used to decide when a membrane has to be dissolved. Notice how the objects simply “count” in the subscript except that when \(k = \varphi ^{}(a)\) the membrane in which they are contained is dissolved. The application of those rules is depicted in Fig. 2 in the transitions from \(t=1\) to \(t=2\), from \(t=2\) to \(t=3\), and from \(t=3\) to \(t=4\); the dissolution of the containing membranes happens from \(t=2\) to \(t=3\) for objects representing the tape symbol a, and from \(t=3\) to \(t=4\) for objects representing the tape symbol b.

At the same time, the object representing the TM state enters the membrane (ij), representing that the tape head at time j is in position i and starts to count. When membrane (ij) is dissolved, it is possible to infer the object that dissolved it and, thus, the symbol on the tape under the tape head, which is represented by \(\varphi ^{-1}(a)\) (which is well defined, since \(\varphi \) is a bijection between \(\varSigma \) and \(\{1,\ldots ,m\}\)). The corresponding rules are:

$$\begin{aligned}&q_{i,j,0} \; [{}]_{(i,j)}^{} \rightarrow [{q_{i,j,1}}]_{(i,j)}^{} \quad \hbox { for }\ q \in Q, \end{aligned}$$
(6)
$$\begin{aligned}&[q_{i,j,k} \rightarrow q_{i,j,k+1}]_{(i,j)} \quad \hbox {for } 1 \le k \le m \hbox { and } q \in Q , \end{aligned}$$
(7)
$$\begin{aligned}&[q_{i,j,k} \rightarrow q_{i,j,k+1,\varphi ^{-1}(k)}]_{0} \quad \hbox {for } 1 \le k \le m \hbox {, and } q \in Q, \end{aligned}$$
(8)
$$\begin{aligned}&[q_{i,j,k,a} \rightarrow q_{i,j,k+1,a}]_{0} \quad \hbox {for } 1 \le k \le m , a \in \varSigma , \hbox { and } q \in Q. \end{aligned}$$
(9)

The application of those rules is depicted in Fig. 2 in all the transitions from \(t=1\) to \(t=4\). At time step \(m+1\) in the simulation of the current TM step, all membranes with label (ij) (for all i and with j the current TM step being simulated) have been dissolved. Now the object representing the TM state continues to wait in the outermost membrane, while all the objects representing the TM tape are sent in into the corresponding membranes \((i,j)'\). These membranes will be employed to delete the current content of the cell under the TM head and to replace it with the new symbol. The rules applied at time step \(m+1\) are the following:

$$\begin{aligned}&a_{i,j,m+1} \; [{}]_{(i,j)'}^{} \rightarrow [{a_{i,j,m+2}}]_{(i,j)'}^{} \quad \hbox { for}\ a \in \varSigma , \end{aligned}$$
(10)
$$\begin{aligned}&[q_{i,j,m+1,a} \rightarrow q_{i,j,m+2,a}]_{0} \quad \hbox {for} \, q \in Q \hbox { and for } a \in \varSigma . \end{aligned}$$
(11)

In Fig. 2 the application of these rules is in the transition \(t=4\) to \(t=5\). Once all the objects of the form \(a_{i,j,k}\) for \(a \in \varSigma \) have entered the membranes \((i,j)'\), they wait for the object representing the TM state to enter:

$$\begin{aligned}&[a_{i,j,m+2} \rightarrow a_{i,j,m+3}]_{(i,j)'} \quad \hbox { for }\ a \in \varSigma ,\end{aligned}$$
(12)
$$\begin{aligned}&q_{i,j,m+2,a} \; [{}]_{(i,j)'}^{} \rightarrow [{q_{i,j,m+3,a}}]_{(i,j)'}^{} \quad \hbox {for } q \in Q \hbox { and } a \in \varSigma . \end{aligned}$$
(13)

These rules are applied in the transition from \(t=5\) to \(t=6\) in Fig. 2. At time step \(m+3,\) the membrane containing the object representing the TM state is dissolved. In all other membranes, the objects representing the TM tape wait for one more step:

$$\begin{aligned}&[a_{i,j,m+3} \rightarrow a_{i,j,m+4}]_{(i,j)'} \quad \hbox { for}\ a \in \varSigma , \end{aligned}$$
(14)
$$\begin{aligned}&[{q_{i,j,m+3,a}}]_{(i,j)'}^{} \rightarrow q_{i,j,m+4,a} \quad \hbox {for } q \in Q \hbox { and } a \in \varSigma . \end{aligned}$$
(15)

In Fig. 2, these rules are applied in the transition from \(t=6\) to \(t=7\). One of the focal points of this simulation algorithm happens at time step \(m+4\) (always relative to the start of the simulation of the current TM step). Here, all the objects representing the tape content dissolve the membrane \((i,j)'\) in which they are located. The only object not performing this step is the one that was sent into the outermost membrane by the dissolution triggered by the object representing the TM state. The object representing the old content of the tape cell is deleted (by rewriting it to the empty multiset \(\epsilon \)) and the one encoding the TM state produces its replacement according to the transition function \(\delta \) of the TM:

$$\begin{aligned}&[{a_{i,j,m+4}}]_{(i,j)'}^{} \rightarrow a_{i,j,m+5} \quad \hbox { for}\ a \in \varSigma , \end{aligned}$$
(16)
$$\begin{aligned}&[a_{i,j,m+4} \rightarrow \epsilon ]_{0} \quad \hbox { for}\ a \in \varSigma , \end{aligned}$$
(17)
$$\begin{aligned}&[q_{i,j,m+4,a} \rightarrow q_{i,j,m+5,a},b_{i+d,j,m+5}]_{0} \quad \text {for }q \in Q, a \in \varSigma ,\nonumber \\&\quad \hbox { and}\ \delta (q,a) = (r,b,d). \end{aligned}$$
(18)

These rules are applied in the transition from \(t=7\) to \(t=8\) in Fig. 2. Finally, a new simulation step can start by sending in all the objects representing the TM tape to the membranes \((i,j+1)\) and resetting the last component of their subscript. At the same time, the object representing the TM state actually applies the transition function \(\delta \) and rewrites itself:

$$\begin{aligned}&a_{i,j,m+5} \; [{}]_{(i,j+1)}^{} \rightarrow [{a_{i,j+1,0}}]_{(i,j+1)}^{} \quad \hbox { for}\ a \in \varSigma , \end{aligned}$$
(19)
$$\begin{aligned}&[q_{i,j,m+5,a} \rightarrow r_{i+d,j+1,0}]_{0} \quad \text {for }q \in Q, a \in \varSigma ,\nonumber \\&\quad \hbox { and}\ \delta (q,a) = (r,b,d). \end{aligned}$$
(20)

The application of these rules happens in the transition from \(t=8\) to \(t=9\) in Fig. 2. The last transition (from \(t=9\) to \(t=10\)) is the beginning of the simulation of the next step.

Notice that all rules, labels, and objects can be constructed by a logarithmic space TM. In fact, most of them are constructed by iterating either a constant or a polynomial number of times to produce the necessary subscripts. Since the counters are all at most polynomial in the number that they contain, they can be encoded using a logarithmic number of bits.

We can thus state the main result:

Theorem 1

\((\textsf {L},\textsf {L})\)-uniform families of confluentshallowpolarizationless P systems with active membranes with dissolutioncan solve all problems in\(\textsf {P}\).

This result was already known for non-shallow systems [13], but here there are two main innovations: the systems here are shallow, i.e. of depth 1, and the construction is via a direct simulation of a Turing machine, which allows one to embed this construction into more complex membrane structures. Furthermore, notice how the construction makes no use of rules duplicating the membranes and their contents (i.e. division rules), which are a common way of increasing the computational power of P systems.

Notice that the above construction can be modified to simulate a non-deterministic TM, by replacing the only two types of rules that involve the transition function of the TM in such a way as to allow for a non-deterministic choice (due to having multiple rules in conflict):

$$\begin{aligned}&[q_{i,j,m+4,a} \rightarrow q_{i,j,m+5,(r,b,i+d)},b_{i+d,j,m+5}]_{0} \quad \text {for }q \in Q, a \in \varSigma ,\\&\quad \hbox { and}\ (r,b,d) \in \delta (q,a) \\&[q_{i,j,m+5,(r,b,i+d)} \rightarrow r_{i+d,j+1,0}]_{0} \quad \hbox { for } q \in Q \hbox { and } a \in \varSigma . \end{aligned}$$

In the first rule, the non-deterministic choice is remembered by writing it in the subscript; in this way, the only rule of the second kind that can fire is the one corresponding to the non-deterministic choice performed. We can then state the following theorem showing that a weaker uniformity condition is still sufficient to reach \({\textsf {NP}}\) for non-confluent systems:

Theorem 2

\((\textsf {L},\textsf {L})\)-uniform families ofnon-confluentshallowpolarizationless P systems with active membranes with dissolution and without division can solve all problems in \({\textsf {NP}}\).

4 Conclusions and open problems

In this paper, we showed that P systems without charges can still solve all problems in the complexity class \(\textsf {P}\) even when the power of the machines in the uniformity condition is reduced. The TM simulation presented is quite modular and can be embedded in more complex membrane structures. The resulting simulation is also efficient, requiring a slowdown of only a constant multiplicative factor.

Among the open problems, the most prominent one is to study if the construction presented in [6] can be replicated for systems with charges, possibly adding an additional nesting level to accommodate for the different TM simulation technique. Such a result would show that even without charges, the entirety of the counting hierarchy is reachable in constant depth. This is another step in trying to understand what are the features that actually grant P systems the power to reach beyond \(\textsf {P}\) and, in some cases, beyond the entire polynomial hierarchy. It would also be interesting to modify the simulation to reduce the number of labels and, consequently, membranes employed: the current construction uses \(O(p(n)^2)\) membranes (i.e. one for every pair of tape cell and time step). However, the number of cells that are rewritten during a computation of the TM halting in p(n) steps is at most p(n). Can we reduce the number of membrane labels to this quantity? Finally, we have shown that \((\textsf {L},\textsf {L})\)-uniformity is sufficient to construct the P system. We conjecture that this is not necessary and that, in fact, the construction might be possible with even weaker uniformity conditions; it remains open to find what those conditions are.