Understanding the algorithmic behaviors that are in principle realizable in a chemical system is necessary for a rigorous understanding of the design principles of biological regulatory networks. Further, advances in synthetic biology herald the time when we will be able to rationally engineer complex chemical systems and when idealized formal models will become blueprints for engineering.
Coupled chemical interactions in a well-mixed solution are commonly formalized as chemical reaction networks (CRNs). However, despite the widespread use of CRNs in the natural sciences, the range of computational behaviors exhibited by CRNs is not well understood. Here, we study the following problem: What functions f : ℝk → ℝ can be computed by a CRN, in which the CRN eventually produces the correct amount of the “output” molecule, no matter the rate at which reactions proceed? This captures a previously unexplored but very natural class of computations: For example, the reaction X1 + X2 → Y can be thought to compute the function y = min (x1, x2). Such a CRN is robust in the sense that it is correct whether its evolution is governed by the standard model of mass-action kinetics, alternatives such as Hill-function or Michaelis-Menten kinetics, or other arbitrary models of chemistry that respect the (fundamentally digital) stoichiometric constraints (what are the reactants and products?).
We develop a reachability relation based on a broad notion of “what could happen” if reaction rates can vary arbitrarily over time. Using reachability, we define stable computation analogously to probability 1 computation in distributed computing and connect it with a seemingly stronger notion of rate-independent computation based on convergence in the limit t → ∞ under a wide class of generalized rate laws. Besides the direct mapping of a concentration to a nonnegative analog value, we also consider the “dual-rail representation” that can represent negative values as the difference of two concentrations and allows the composition of CRN modules. We prove that a function is rate-independently computable if and only if it is piecewise linear (with rational coefficients) and continuous (dual-rail representation), or non-negative with discontinuities occurring only when some inputs switch from zero to positive (direct representation). The many contexts where continuous piecewise linear functions are powerful targets for implementation, combined with the systematic construction we develop for computing these functions, demonstrate the potential of rate-independent chemical computation.
1 Introduction
Understanding the dynamic behaviors that are, in principle, achievable with chemical species interacting over time is crucial for engineering of complex molecular systems capable of diverse and robust behaviors. The exploration of this space also helps to elucidate the constraints imposed upon biology by the laws of chemistry. The natural language for describing the interactions of molecular species in a well-mixed solution is that of chemical reaction networks (CRNs), i.e., finite sets of chemical reactions such as \(A + B \rightarrow A + C\). The intuitive meaning of this expression is that a unit of chemical species A reacts with a unit of chemical species B, producing a unit of a new chemical species C and regenerating a unit of A back. Typically (in mass-action kinetics) the rate with which this occurs is proportional to the product of the amounts of the reactants A and B.
Informally speaking, we can identify two sources of computational power in CRNs. First, the reaction stoichiometry transforms some specific ratios of reactants to products. For example, \(X \mathop {\rightarrow }\limits 2Y\) makes two units of Y for every unit of X. Second, in mass-action kinetics the reaction rate laws effectively perform multiplication of the reactant concentrations. In this work, we seek to disentangle the contributions of these two computational ingredients by focusing on the computational power of stoichiometry alone. Besides fundamental scientific interest, such rate-independent computation may be significantly easier to engineer than computation relying on rates (see Section 1.2). Importantly, stoichiometry is robust—not requiring the tuning of reaction conditions, nor even the assumption that the solution is well-mixed.
In the discrete model of chemical kinetics (see Section 1.2 for the distinction between the discrete and continuous models), rate-independence is formally related to probability 1 computation with passively mobile (i.e., interacting randomly) agents in distributed computing (the “population protocols” model [6, 9]; see Section 1.3). However, the continuous model of chemistry is most widely used and is more applicable for engineering chemical computation where working with bulk concentrations remains the state-of-the-art (see Section 1.2). This article formally articulates rate-independence in continuous CRNs and characterizes the computational power of stoichiometry in this model.
In the continuous setting, the amount of a species is a nonnegative real number representing its concentration (average count per unit volume).1 We characterize the class of real-valued functions computable by CRNs when reaction rates are permitted to vary arbitrarily (possibly adversarially) over time. Any computation in this setting must rely on stoichiometry alone. How can rate laws “preserve stoichiometry” while varying “arbitrarily over time”? Formally, preserving stoichiometry means that if we reach state \(\mathbf {d}\) from state \(\mathbf {c}\), then \(\mathbf {d}= \mathbf {c}+ \mathbf {M}\mathbf {u}\) for some non-negative vector \(\mathbf {u}\) of reaction fluxes, where the CRN’s stoichiometry matrix \(\mathbf {M}\) maps those fluxes to the changes in species concentrations they cause. (For example, flux 0.5 of reaction \(C+X \rightarrow C+3Y\) changes the concentrations of \(C,X,Y\), respectively, by \(0,-0.5,+1.5.\)) Subject to this constraint, the widest class of trajectories that still satisfies the intuitive meaning of the reaction semantics can be described informally as follows: (1) concentrations cannot become negative; (2) all reactants must be present when a reaction occurs (e.g., if a reaction uses a catalyst,2 then the catalyst must be present); (3) the causal relationships between the production of species is respected (e.g., if producing A requires B and producing B requires A, then neither can ever be produced if both are absent).3 This notion of “allowed trajectories” is formalized as Definition 2.22.
Fig. 1.
The example shown in Figure 1(a) illustrates the style of computation studied here. Let \(f: \mathbb {R}_{\ge 0}^2 \rightarrow \mathbb {R}_{\ge 0}\) be the max function \(f(x_1, x_2) = \max (x_1,x_2)\) restricted to non-negative \(x_1\) and \(x_2\). The CRN of Figure 1(a) computes this function in the following sense: Inputs \(x_1\) and \(x_2\) are given as initial concentrations of input species \(X_1\) and \(X_2\). Then the CRN converges to f’s output value \(\max (x_1,x_2)\) of species Y, under a very wide interpretation of rate laws. Intuitively, the first two reactions must eventually produce \(x_1 + x_2\) of Y, and \(x_1\), \(x_2\) of \(Z_1\) and \(Z_2\), respectively. This is enforced by the stoichiometric constraint that the amount of \(Z_1\) and Y produced is equal to the amount of \(X_1\) consumed (and analogously for the second reaction). Stoichiometric constraints require the third reaction to produce the amount of K that is the minimum of the amount of \(Z_1\) and \(Z_2\) eventually produced in the first two reactions. Thus, \(\min (x_1,x_2)\) of K is eventually produced. Therefore, the fourth reaction eventually consumes \(\min (x_1,x_2)\) molecules of Y leaving \(x_1 + x_2 - \min (x_1, x_2) = \max (x_1, x_2)\) of Y behind. We can imagine an adversary pushing flux through these four reactions in any devious stratagem (i.e., arbitrary rates), yet unable to prevent the CRN from converging to the correct output, so long as applicable reactions must eventually occur.
We further consider the natural extension of such computation to handle negative real values. The example shown in Figure 1(b) computes \(f(x_1, x_2) = \max (x_1,x_2)\) (\(f: \mathbb {R}^2 \rightarrow \mathbb {R}\)), graphed in (c). To handle negative input and output values, we represent the value of each input and output by a pair of species using the so-called “dual-rail” representation. For example, in state \(\mathbf {c}\), \(x_1 = \mathbf {c}(X_1^+)-\mathbf {c}(X_1^-)\)—i.e., the difference between the concentrations of species \(X_1^+\) and \(X_1^-\). Note that when \(X_1^-\) and \(X_2^-\) are initially absent, the CRN becomes equivalent to the first three reactions of Figure 1(a) under relabeling of species. We do not need the last reaction of (a), because the output is represented as the difference of \(Y^+\) and \(Y^-\) by our convention. For the argument that the computation is correct even if \(X_1^-\) and \(X_2^-\) are initially present, we refer the reader to the proof of corollary 5.14 in section 5.3.
In addition to handling negative values, the dual-rail representation has the benefit of allowing composition. Specifically, the dual-rail representation allows a CRN to never consume its output species (e.g., rather than consuming \(Y^+\), it can produce \(Y^-\)). This monotonicity in the production of output allows directly composing CRN computations simply by concatenating CRNs and relabeling species (e.g., to make the output of one be input to the other). Since the upstream CRN never consumes its output species, the downstream CRN is free to consume them without interfering with the upstream computation. Since the class of functions computable by dual-rail CRNs ends up being invariant to whether or not, they are allowed to consume their output, and our results imply that dual-rail computation is composable without sacrificing computational power (see section 5.1).
1.1 Summary of Main Results
Our first contribution is to define a reachability relation that captures the broadest reasonable notion of “what could happen” and is of independent interest. Although concentration trajectories of mass-action kinetics (and other standard rate laws) follow smooth curves, we base the reachability relation on taking simple-to-analyze straight-line paths. Theorem 2.27 shows that this notion of reachability is exactly equivalent to satisfying the three intuitive properties described above, (1) nonnegative concentrations, (2) reactions require their reactants present, and (3) respecting causal relationships between the production of species. Thus, our reachability relation has all reasonable rate laws as special cases; i.e., if any of them can reach a state, then so can our reachability relation.
The reachability relation allows us to formally define stable computation in Definition 3.2, analogously to similar definitions of probability 1 computation in discrete systems [6, 18]. Stable computation allows us to delineate when a function cannot be computed rate-independently. Roughly, unless the system is stably computing, then an adversary can always push it “far” away from the correct output (theorem 3.3), precluding the system from being reasonably rate-independent.
For the positive direction, the CRN should converge to the correct output no matter the reaction rates. While a CRN that does not stably compute is not rate-independent (which is sufficient for negative results), the positive direction does not directly follow from stable computation for continuous systems. Indeed, we show examples of CRNs that stably compute a function by our definition, yet under standard mass-action kinetics fail to converge to the correct output; see Section 4. Instead, we capture a very strong notion of “convergence despite perturbations” in fair computation (Definition 4.3), based on generalized rate laws (so-called fair rate schedules, Definition 4.1). A CRN that fairly computes converges to the correct output as time \(t \rightarrow \infty\) under any trajectory satisfying the three intuitive conditions above, plus an additional requirement that reactions do occur when applicable. (In particular, mass-action (Corollary 4.11) satisfies these conditions, but the range of rate laws satisfying the conditions is much broader.) Luckily, stable computation and fair computation can be tightly connected, and we show that for a special class of CRNs we call feedforward (Definition 4.5) the two definitions coincide. In other words, a feedforward CRN stably computes a function if and only if it fairly computes the function (Lemmas 4.9 and 4.4). We show that all functions stably computable by CRNs are computable by feedforward CRNs (Lemmas 5.16 and 5.15), implying that the class of functions computable by CRNs under either definition—stable computation or fair computation—is identical. In other words, we can freely work with the simpler definition of stable computation, knowing that we are actually reasoning about a very general notion of rate-independence.
The above line of reasoning leads us to conclude that exactly the functions that are positive-continuous, piecewise linear (direct) or continuous, piecewise linear (dual-rail) can be rate-independently computed (Theorems 5.9 and 5.10). Positive-continuous means that the only discontinuities occur on a “face” of \(\mathbb {R}_{\ge 0}^k\)—i.e., the function may discontinuously jump only at a point where some input goes from 0 to positive. We already saw a simple example of a continuous, piecewise linear function (max function, 1(a,b,c)). 1(d,e) shows a more complex example and a CRN that computes it. 1(f,g) shows a discontinuous but positive-continuous function and a CRN that computes it. Although our work shows that the computational power of rate-independent CRNs is limited, the power of the computable class of functions should not be underestimated. For example, allowing a fixed non-zero initial concentration of non-input species (see Section 6.2), such CRNs are equivalent to ReLU neural networks—arguably the most widely used type of neural networks in machine learning [52].
1.2 Chemical Motivation
Traditionally, CRNs have been used as a descriptive language to analyze naturally occurring chemical reactions, as well as various other systems with a large number of interacting components such as gene regulatory networks and animal populations. However, CRNs also constitute a natural choice of programming language for engineering artificial systems. For example, nucleic-acid networks can be rationally designed to implement arbitrary chemical reaction networks [14, 20, 50, 51]. Thus, since in principle any CRN can be physically built, hypothetical CRNs with interesting behaviors are becoming of more than theoretical interest. One day artificial CRNs may underlie embedded controllers for biochemical, nanotechnological, or medical applications, where environments are inherently incompatible with traditional electronic controllers. However, to effectively program chemistry, we must understand the computational power at our disposal. In turn, the computer science approach to CRNs is also beginning to generate novel insights regarding natural cellular regulatory networks [15].
At the fine-grained level of detail, chemistry is discrete and stochastic. This level is typically modeled by discrete CRNs, where the state is a vector of nonnegative integers representing the counts of each species in the given reaction vessel, and reactions are modeled by a Markov jump process [29]. The continuous model is governed by a system of mass-action ordinary differential equations, which can be derived as a limiting case of the discrete model when volume and counts are large [34].4 While of physical primacy, the discrete model can be less suitable for reasoning about feasible chemical algorithms. Many algorithms in the discrete model rely on a single molecule (called a “leader”) to coordinate computation [8]. Whether the initial state is assumed to have a leader or the CRN is designed to eliminate all but one copy of the leader species (“leader election”), such algorithms relying on single-molecule behavior are currently infeasible, since any single molecule can get damaged or become effectively lost.
An important reason for our focus on stoichiometric computation is that algorithms relying only on stoichiometry make easier design targets. The rates of reactions are real-valued quantities that can fluctuate with reaction conditions such as temperature, while the stoichiometric coefficients are immutable whole numbers set by the nature of the reaction. Methods for physically implementing CRNs naturally yield systems with digital stoichiometry that can be set exactly [14, 50], whereas these methods often suffer from imprecise control over reaction rates [20, 51]. Further, relying on specific rate laws can be problematic: Many systems do not apparently follow mass-action rate laws, and chemists have developed an array of alternative rate laws such as Michaelis-Menten (modeling enzymes) and Hill-function kinetics (widely used for gene regulation).5 It is well-known that cells are not well-mixed, and many models have been developed to take space into account (e.g., reaction-diffusion [32]). Moreover, robustness of rate laws is a recurring motif in systems biology due to much evidence that biological regulatory networks tend to be robust to the form of the rate laws and the rate parameters [10]. Thus, we are interested in what computations can be understood or engineered without regard for the reaction rate laws.
1.3 Related Works
An earlier conference version of this article appeared as Reference [19]. Besides replacing a number of informal arguments with rigorous proofs, this journal version also expands and generalizes the results of the conference version. For example, we introduce new machinery for representing and manipulating trajectories as linear objects (piecewise linear paths). We also define a broad class of rate laws, formalized by Definition 2.22, which captures mass-action kinetics and all other known rate laws such as Michaelis-Menten and Hill-function kinetics, and we prove that our definition of reachability is as general as any in this class. For the constructive part, this version also generalizes Lemma 3.4 of Reference [19] (in addition to correcting its proof) by introducing feedforward CRNs and proving that correct computation in our setting implies convergence under any “reasonable” rate law (one that produces a fair schedule of rates; definition 4.1) for any feedforward CRN (lemma 4.8).
The relationship between the discrete and continuous CRN models is a complex and much studied one in the natural sciences [45]. The computational abilities of discrete CRNs have been investigated more thoroughly than of continuous CRNs and have been shown to have a surprisingly rich computational structure. Of most relevance here is the work in the discrete setting showing that the class of functions that can be computed depends strongly on whether the computation must be correct or just likely to be correct (under the usual stochastic kinetics)—which is the discrete version of the distinction between rate-independent and rate-dependent computation. While Turing universal computation is possible with an arbitrarily small, non-zero probability of error over all time [49], forbidding error altogether limits the computational power: Error-free computation by stochastic CRNs is limited to semilinear predicates and functions [6, 18]. (Intuitively, semilinear functions are expressible as a finite union of affine functions, with “simple, periodic” domains of each affine function [18].) The study of error-free computation in discrete CRNs is heavily based on the results first developed for a model of distributed computing called population protocols [6, 9]. We formally refer to our notion of rate-independent computation as stable computation in direct reference to the analogous notion in population protocols.
While our notion of rate-independent computation is the natural extension of deterministic computation in the discrete model, there are many differences between the two settings. As mentioned above, many discrete algorithms such as those that rely on a single “leader” molecule fail to work in the continuous setting, and some functions like distinguishing between even and odd molecular counts do not make sense. Broadly speaking, the proof techniques appear to require very different machinery, and the importance of stable computation itself needs substantial justification in the continuous model (as the examples shown at the beginning of Section 4 demonstrate).
Continuous CRNs have been proven to be Turing universal under mass-action rate laws [27], a consequence of the surprising computational power of polynomial ODEs [12]. In ODEs without the CRN semantics, there is no natural notion of stoichiometry and thus no notion of rate-independence analogous to ours. In chemistry, the same physical process (a reaction) is responsible for multiple monomials across multiple ODEs, which justifies these monomials being exactly the same or in fixed ratios (corresponding to obeying reaction stoichiometry). Such forced relationships do not seem natural for more general polynomial ODEs that do not correspond to chemical reactions.6
Our notion of reachability (definition 2.3) is intended to capture a wide diversity of possible rate laws. Generalized rate laws (extending mass-action, Michaelis-Menten, etc.) have been previously studied, although not in a computational setting. For example, certain conditions were identified on global convergence to equilibrium based on properties intuitively similar to ours [4]. A related idea in the literature, generalizing mass-action, is differential inclusion [30]. In that model, the mass-action rate constants are not fixed to be particular real numbers constant over time, but instead can vary over time within some bounded interval \([l,u]\) fixed in advance, with \(0 \lt l \le u \lt \infty\). Another related idea is the notion of a reaction system [26], which generalizes even beyond mass-action, allowing reaction rates to be an (almost) arbitrary function of species concentrations.7 Other generalized rate laws have been defined as well [5, 23].
Since the original publication of the conference version of this article [19], a number of works have used our framework. A key concept in capturing rate-independent computation is the reachability relation (segment-reachability, definition 2.3). Reference [16] showed that, given two states, deciding whether one is reachable from the other is solvable in polynomial time. This contrasts sharply with the hardness of the reachability problem for discrete CRNs, which, although computable [39], is not even primitive recursive [22, 37]. (These results were proven using the terminology of the equivalent models of Petri nets/vector addition systems.)
The question of deciding whether a given CRN is rate-independent was studied in Reference [23]. The work provides sufficient graphical conditions on the structure of the CRN that ensure rate-independence for the whole CRN or only for certain output species. Interestingly, the authors of Reference [23] applied this method to the Biomodels repository of curated CRNs of biological origin and found a number of CRNs that satisfy the rate-independence conditions.
An important motivation for the dual-rail representation in this work is to allow composition of rate-independent CRN modules (section 5.1). Such rate-independent modules can be composed into overall rate-independent computation simply by concatenating their chemical reactions and relabeling species (such that the output species of the first is the input species of the second, and all other species are distinct). In contrast, rate-independent composition with the direct (non-dual rail) representation, introduces an additional “superadditivity” constraint that for all input vectors \(\mathbf {x}\) and \(\mathbf {x}^{\prime }\), \(f(\mathbf {x}) + f(\mathbf {x}^{\prime }) \le f(\mathbf {x}+ \mathbf {x}^{\prime })\) [17]. Thus, for example, the non-superadditive max function (Figure 1) provably cannot be composably computed with a rate-independent CRN in the direct representation. Composable computation has also been characterized in the discrete model [31, 48].
Other input encodings have been considered besides direct and dual-rail. For example, the so-called “fractional encoding” encodes a real number between 0 and 1 as a ratio \(\frac{x_1}{x_0+x_1}\) where \(x_0,x_1\) are concentrations of two input species [44]. Other notions of chemical “rate-independence” include CRNs that work independently of the rate law as long as there is a separation into fast and slow reactions [47]. For a detailed survey on computation with CRNs (both continuous and discrete), see Reference [13].
2 Defining Reachability in Chemical Reaction Networks
2.1 Chemical Reaction Networks
We first explain our notation for vectors of concentrations of chemical species and then formally define chemical reaction networks.
Given a finite set F, let \(\mathbb {R}^F\) denote the set of functions \(\mathbf {c}: F \rightarrow \mathbb {R}\). We view \(\mathbf {c}\) equivalently as a vector of real numbers indexed by elements of F. Given \(x \in F\), we write \(\mathbf {c}(x)\), or sometimes \(\mathbf {c}_x\), to denote the real number indexed by x. The notation \(\mathbb {R}_{\ge 0}^F\) is defined similarly for nonnegative real vectors. Throughout this article, let \(\Lambda\) be a finite set of chemical species. Given \(S\in \Lambda\) and \(\mathbf {c}\in \mathbb {R}_{\ge 0}^\Lambda\), we refer to \(\mathbf {c}(S)\) as the concentration of S in \(\mathbf {c}\). For any \(\mathbf {c}\in \mathbb {R}_{\ge 0}^\Lambda\), let \([\mathbf {c}] = \lbrace S \in \Lambda \ |\ \mathbf {c}(S) \gt 0 \rbrace\), the set of species present in \(\mathbf {c}\) (a.k.a., the support of \(\mathbf {c}\)). We write \(\mathbf {c}\le \mathbf {c}^{\prime }\) to denote that \(\mathbf {c}(S) \le \mathbf {c}^{\prime }(S)\) for all \(S \in \Lambda\). Given \(\mathbf {c},\mathbf {c}^{\prime } \in \mathbb {R}_{\ge 0}^\Lambda\), we define the vector component-wise operations of addition \(\mathbf {c}+\mathbf {c}^{\prime }\), subtraction \(\mathbf {c}-\mathbf {c}^{\prime }\), and scalar multiplication \(x \mathbf {c}\) for \(x \in \mathbb {R}\). If \(\Delta \subset \Lambda\), we view a vector \(\mathbf {c}\in \mathbb {R}_{\ge 0}^\Delta\) equivalently as a vector \(\mathbf {c}\in \mathbb {R}_{\ge 0}^\Lambda\) by assuming \(\mathbf {c}(S)=0\) for all \(S \in \Lambda \setminus \Delta .\) For \(\Delta \subset \Lambda\), we write \(\mathbf {c}\upharpoonright \Delta\) to denote \(\mathbf {c}\)restricted to\(\Delta\); in particular, \(\mathbf {c}\upharpoonright \Delta = \mathbf {0} \iff (\forall S\in \Delta)\ \mathbf {c}(S)=0.\) (We use the convention that \(\mathbf {c}\upharpoonright \emptyset = \mathbf {0}\) for all states \(\mathbf {c}\).)
A reaction over \(\Lambda\) is a pair \(\alpha = \langle \mathbf {r},\mathbf {p}\rangle \in \mathbb {N}^\Lambda \times \mathbb {N}^\Lambda\), such that \(\mathbf {r}\ne \mathbf {p}\), specifying the stoichiometry of the reactants and products, respectively.8 For instance, given \(\Lambda =\lbrace A,B,C\rbrace\), the reaction \(A+2B \rightarrow A+3C\) is the pair \(\left\langle (1,2,0) , (1,0,3) \right\rangle .\) We represent reversible reactions such as \(A \mathop {\rightleftharpoons }\limits B\) as two irreversible reactions \(A \rightarrow B\) and \(B \rightarrow A\). In this article, we assume that \(\mathbf {r}\ne \mathbf {0}\), i.e., we have no reactions of the form \(\emptyset \rightarrow \ldots\).9 A (finite)chemical reaction network (CRN) is a pair \(\mathcal {C}=(\Lambda ,R)\), where \(\Lambda\) is a finite set of chemical species, and R is a finite set of reactions over \(\Lambda\). A state of a CRN \(\mathcal {C}=(\Lambda ,R)\) is a vector \(\mathbf {c}\in \mathbb {R}_{\ge 0}^\Lambda\). Given a state \(\mathbf {c}\) and reaction \(\alpha =\left\langle \mathbf {r} , \mathbf {p} \right\rangle\), we say that \(\alpha\) is applicable in \(\mathbf {c}\) if \([\mathbf {r}] \subseteq [\mathbf {c}]\) (i.e., \(\mathbf {c}\) contains positive concentration of all of the reactants). If no reaction is applicable in state \(\mathbf {c}\), then we say \(\mathbf {c}\) is static. We say a species S is produced in reaction \(\langle \mathbf {r},\mathbf {p}\rangle\) if \(\mathbf {r}(S) \lt \mathbf {p}(S)\), and consumed if \(\mathbf {r}(S) \gt \mathbf {p}(S)\). (Note that a catalyst, such as C in the reaction \(C+X \rightarrow C+Y\), is neither produced nor consumed.)
2.2 Segment Reachability
In the previous section, we defined the syntax of CRNs. Toward studying rate-independent computation, we now want to define the semantics of what “could happen” if reaction rates can vary arbitrarily over time. This is captured by a notion of reachability, which is the focus of this section. Intuitively, \(\mathbf {d}\) is reachable from \(\mathbf {c}\) if applying some amount of reactions to \(\mathbf {c}\) results in \(\mathbf {d}\), such that no reaction is ever applied when any of its reactants are concentration 0. Formalizing this concept is a bit tricky and constitutes one of the contributions of this article. Intuitively, we will think of reachability via straight line segments. This may appear overly limiting; after all mass-action and other rate laws trace out smooth curves. However, in this and subsequent sections, we show a number of properties of our definition that support its reasonableness.
Throughout this section, fix a CRN \(\mathcal {C}= (\Lambda ,R)\). All states \(\mathbf {c}\), and so on, are assumed to be states of \(\mathcal {C}\). We define the \(|\Lambda | \times |R|\)reaction stoichiometry matrix\(\mathbf {M}\) such that, for species \(S \in \Lambda\) and reaction \(\alpha = \langle \mathbf {r},\mathbf {p}\rangle \in R\), \(\mathbf {M}(S,\alpha) = \mathbf {p}(S) - \mathbf {r}(S)\) is the net amount of S produced by \(\alpha\) (negative if S is consumed).10 For example, if we have the reactions \(X \rightarrow Y\) and \(X + A \rightarrow 2X + 3Y\), and if the three rows correspond to X, A, and Y, in that order, then
Intuitively, by a single segment, we mean running the reactions applicable at \(\mathbf {c}\) at a constant (possibly 0) rate to get from \(\mathbf {c}\) to \(\mathbf {d}\). In the definition, \(\mathbf {u}(\alpha)\) represents the flux of reaction \(\alpha \in R\).
The next definition is used in our main notion of reachability, which uses either a finite number of straight lines or infinitely many so long as they converge to a single state.
For example, suppose the reactions are \(X \rightarrow C\) and \(C + Y \rightarrow C + Z\), and we are in state \(\lbrace 0 C, 1 X, 1 Y, 0 Z\rbrace\). With straight-line segments, any state with a positive amount of Z must be reached in at least two segments: first to produce C, which allows the second reaction to occur, and then any combination of the first and second reactions. For example, \(\lbrace 0 C\), \(1 X\), \(1 Y\), \(0 Z\rbrace\)\(\rightarrow ^1\)\(\lbrace 0.1 C\), \(0.9 X\), \(1 Y\), \(0 Z\rbrace\)\(\rightarrow ^1\)\(\lbrace 1 C\), \(0 X\), \(0 Y\), \(1 Z\rbrace\). This is a simple example showing that more states are reachable with \(\rightsquigarrow\) than \(\rightarrow ^1\). Often, Definition 2.3 is used implicitly, when we make statements such as, “Run reaction 1 until X is gone, then run reaction 2 until Y is gone,” which implicitly defines two straight lines in concentration space.
Although more effort will be needed to justify its reasonableness (see Section 2.4), segment-reachability will serve as the main notion of reachability in this article.
2.3 Bound on Number of Required Line Segments in Segment Reachability
It may seem that we can never achieve the “full diversity” of states reachable with an infinite number of line segments if we use only a bounded number of line segments. However, Theorem 2.15 shows that increasing the number of straight-line segments beyond a certain point does not make any additional states reachable. Thus, using a few line segments captures all the states reachable with arbitrarily many line segments, and in fact even in the limit of infinitely many line segments.
To prove Theorem 2.15, we first develop important machinery for representing and manipulating paths under \(\rightsquigarrow\). Note that reachability is closed under addition and scaling in the sense that if \(\mathbf {c}\rightsquigarrow \mathbf {d}\) and \(\mathbf {c}^{\prime } \rightsquigarrow \mathbf {d}^{\prime }\), then \(\alpha \mathbf {c}+ \beta \mathbf {c}^{\prime } \rightsquigarrow \alpha \mathbf {d}+ \beta \mathbf {d}^{\prime }\) for all \(\alpha , \beta \in \mathbb {R}_{\ge 0}\). The following definition captures this property by defining a linear space of all paths. This machinery will also be key to proving the piecewise linearity of the computed function in Section 5.5.
Definition 2.4 allows a prepath to be essentially any sequence of vectors in the linear subspace spanned by reaction vectors. The next definition restricts the vectors with three physical constraints: Species concentrations are nonnegative, reaction fluxes are nonnegative (i.e., reactions can only go one way, turning reactants into products), and reactions cannot occur if any reactant is 0.
Definitions 2.4 and 2.5 allow an infinite sequence of reaction flux vectors (each corresponding to a straight line in the definition of 1-segment reachability). A finite number of straight lines can be specified by letting all but finitely many \(\mathbf {u}_i = \mathbf {0}\). The next definition bounds how many can be nonzero.
Intuitively, \(\Gamma _\infty\) is the space of all of the valid piecewise linear paths that the system can take starting from any given initial state and \(\Gamma _k\) (\(k \in \mathbb {N}\)) is the set of all such paths that have length at most k; thus, \(\Gamma _0 \subseteq \Gamma _1 \subseteq \ldots \subseteq \Gamma _\infty\).
The next lemma shows that if it is possible to reach from a state \(\mathbf {c}\) to several other states, each containing some species possibly distinct from each other, then it is possible to reach from \(\mathbf {c}\) to a state with all of those species present at once.
The next lemma shows that with at most a constant number of straight line segments, it is possible to reach from any state \(\mathbf {c}\) to a state containing all species possible to produce from \(\mathbf {c}\).
Recall that a set is closed if it contains all of its limit points.
Note that Lemma 2.11 is false if we replace “straight-line reachable” with “segment-reachable.” For example, consider \(X \rightarrow C\) and \(X + C \rightarrow Y + C\), where we take the initial state \(\mathbf {c}= \lbrace 1X, 0C, 0Y\rbrace\). Note that for any \(\varepsilon \gt 0\), we can reach the state \(\mathbf {d}_\varepsilon = \lbrace 0 X, \varepsilon C, (1 - \varepsilon) Y \rbrace\). However, because producing Y first requires consuming a positive amount of X to create the catalyst C, the state \(\mathbf {d}_0 = \lbrace 0X, 0C, 1 Y\rbrace\) is not segment reachable from \(\mathbf {c}\), even though \(\mathbf {d}_0 = \lim _{\varepsilon \rightarrow 0} \mathbf {d}_{\varepsilon }\).
If we have an infinite sequence of states such that \(\mathbf {c}= \mathbf {b}_0 \rightsquigarrow \mathbf {b}_1 \rightsquigarrow \mathbf {b}_2 \dots\) and \(\lim _{i \rightarrow \infty } \mathbf {b}_i = \mathbf {d}\), then this does not immediately imply that \(\mathbf {c}\rightsquigarrow ^\infty \mathbf {d}\) by definition 2.2. This is because although the endpoints of the paths \(\mathbf {b}_i \rightsquigarrow \mathbf {b}_{i+1}\) converge to \(\mathbf {d}\), the intermediate states on the paths related by \(\rightarrow ^1\) (i.e., \(\mathbf {b}_i \rightarrow ^1 \mathbf {b}_i^{\prime } \rightarrow ^1 \mathbf {b}_i^{\prime \prime } \rightarrow ^1 \dots \rightarrow ^1 \mathbf {b}_{i+1}\)) may not converge. To capture this weaker notion of convergence, we introduce the following definition, which generalizes \(\rightsquigarrow ^\infty\) by requiring only that there be a converging subsequence of states. (The weaker notion will be eventually needed to prove theorem 3.3.)
The main results of this section have this weaker notion of convergence as a precondition, which will imply that, despite appearances, \(\rightsquigarrow ^\infty\) and \(\rightsquigarrow ^\infty _{\mathrm{ss}}\) are actually equivalent.
The next lemma shows that if no more species are producible from state \(\mathbf {c}\) than are already present in \(\mathbf {c}\), then any state \(\mathbf {d}\) that is \(\rightsquigarrow ^\infty _{\mathrm{ss}}\) reachable from \(\mathbf {c}\) is reachable via a single straight line segment.
Finally, the previous lemmas can be combined to show that at most a constant number of straight line segments (depending on the CRN) are required to reach from any state to any other reachable state. In fact, this holds even for states that are only \(\rightsquigarrow ^\infty _{\mathrm{ss}}\) reachable.
Note that theorem 2.14 immediately implies that \(\rightsquigarrow ^\infty\) and \(\rightsquigarrow ^\infty _{\mathrm{ss}}\) are the same relation, since \(\mathbf {c}\rightsquigarrow ^\infty _{\mathrm{ss}}\mathbf {d}\) implies \(\mathbf {c}\rightsquigarrow ^{m+1} \mathbf {d}\) implies \(\mathbf {c}\rightsquigarrow ^{\infty } \mathbf {d}\).
Although the full power of Theorem 2.14 is useful later in Theorem E.1, the most important consequence of Theorem 2.14 is the following result, which we will use repeatedly:
Corollary 2.15. will allow us to assume without loss of generality that there are a constant number of line segments between any two states, simplifying many arguments. For example, it is not obvious that the relation \(\rightsquigarrow ^\infty\) is transitive, since one cannot concatenate two infinite sequences. However, since two finite sequences of segments can be concatenated, the following corollary is immediate:
The goal of the reachability relation is to capture “what could happen” in chemical reaction networks independently of rates. Thus, it is natural to satisfy several properties: The relation should be reflexive (true for \(\rightsquigarrow\), since \(\mathbf {x}\rightsquigarrow ^0 \mathbf {x}\)) and transitive (Corollary 2.16). Further, the relation should be additive in the intuitive sense that the presence of additional molecules cannot entirely prevent reactions from happening (although in a kinetic model it could effectively slow down reactions due to competition); formally, if \(\mathbf {x}\rightsquigarrow \mathbf {y}\), then \(\mathbf {x}+ \mathbf {c}\rightsquigarrow \mathbf {y}+ \mathbf {c}\) for any state \(\mathbf {c}\). Additivity is a crucial property of the more standard notion of discrete CRN reachability, used for example in many cases to prove impossibility results for those systems [1, 2, 7, 11, 25]. We also employ additivity of \(\rightsquigarrow\) for impossibility results, for example, in the proofs of Lemmas 5.30 and 5.31.11
While satisfying these properties is a good start for justifying the reasonableness of \(\rightsquigarrow\), it is natural to wonder whether there are some “reasonable” rate laws that segment-reachability fails to capture, i.e., perhaps some CRN rate law would take \(\mathbf {x}\) to \(\mathbf {y}\) even though \(\mathbf {x}\not\rightsquigarrow \mathbf {y}\). In Section 2.4, we define an apparently much more general notion of reachability (Definition 2.22) that captures all commonly studied rate laws, while still respecting the fundamental semantics of reactions. We prove that our reachability relation is in fact identical to it, i.e., \(\mathbf {x}\) can reach to \(\mathbf {y}\) under this notion if and only if \(\mathbf {x}\rightsquigarrow \mathbf {y}\) (Theorem 2.27 and Lemma 2.26).
2.4 Generality of Segment Reachability
In this section, we justify that our notion of reachability via straight lines actually corresponds to the most general notion of “being able to get from one state to another,” restricted only by the non-negativity of concentrations, reaction stoichiometry and the need for catalysts—as long as we maintain the causal relationships between the production of species. This notion of reachability admits “time-varying” rate laws where reactions occur according to some arbitrary schedule, which captures situations such as solutions that are not well-mixed, or where physical parameters, such as temperature, change in some arbitrary way. The main result of this section, Theorem 2.27, formalizes this idea and justifies calling segment-reachability simply “reachability” in the rest of this article.
We begin with a review of mass-action kinetics, the most commonly used rate law in chemistry and show the (physically and intuitively obvious but mathematically subtle) features that make it consistent with segment reachability. We then generalize rate-law trajectories to arbitrary “valid rate schedules” and prove that these are exactly captured by segment-reachability.
A CRN with positive rate constants assigned to each reaction defines a mass-action ODE (ordinary differential equation) system with a variable for each species, which represents the time-varying concentration of that species. We follow the convention of upper-case species names and lower-case concentration variables. Each reaction contributes one term to the ODEs for each species produced or consumed in it. The term from reaction \(\alpha\) appearing in the ODE for x is the product of: the rate constant, the reactant concentrations, and the net stoichiometry of X in \(\alpha\) (i.e., the net amount of X produced by \(\alpha\), negative if consumed). For example, the CRN
\begin{align*} X + X &\mathop {\rightarrow }\limits ^{k_1} C \\ C + X &\mathop {\rightarrow }\limits ^{k_2} C + Y \end{align*}
\begin{align} dy/dt &= k_2 c x, \end{align}
(2.3)
where \(k_1, k_2\) are the rate constants of the two reactions.
Given a CRN \(C = (\Lambda , R)\), let \(\mathbf {A}(\mathbf {d}): \mathbb {R}_{\ge 0}^\Lambda \rightarrow \mathbb {R}_{\ge 0}^R\) be the rates of all the reactions in state \(\mathbf {d}\) as given by the mass-action ODEs. Given an assignment of (strictly) positive rate constants, and an initial state \(\mathbf {c}\), the mass-action trajectory is a function \({\boldsymbol \rho }: [0,t_\mathrm{max}) \rightarrow \mathbb {R}_{\ge 0}^\Lambda\), where \(t_\mathrm{max} \in \mathbb {R}_{\ge 0}\cup \lbrace \infty \rbrace\), such that \({\boldsymbol \rho }\) is the solution to \(d {\boldsymbol \rho }/dt = \mathbf {M}\cdot \mathbf {A}({\boldsymbol \rho }(t))\) with \({\boldsymbol \rho }(0) = \mathbf {c}\), where \(t_\mathrm{max}\) is the maximum time, typically \(\infty\), for which the solution is defined on all of \([0,t_\mathrm{max})\). Although beyond the scope of this article, mass-action ODEs are locally Lipschitz, so a CRN admits exactly one mass-action trajectory for a fixed collection of rate constants and initial state \(\mathbf {c}\). Note that for some CRNs (e.g., \(2X \rightarrow 3X\)), the solution of the ODEs goes to infinite concentration in finite time,12 and for such CRNs, \(t_\mathrm{max}\) is finite.
To prove Theorem 2.27, we need to introduce the notion of a siphon from the Petri net literature. This notion will be used, as well, to prove negative results in Section 5.5.
The following lemma, due to Angeli, De Leenheer, and Sontag [5], shows that this is equivalent to the notion that “the absence of \(\Omega\) is forward-invariant” under mass-action: If all species in \(\Omega\) are absent, then they can never again be produced (under mass-action).14 For the sake of completeness, we give a self-contained proof in Appendix A.
We show that the same holds true for segment-reachability. Due to the discrete nature of segment-reachability, the proof is more straightforward than that of Lemma 2.19. It follows the same essential structure one would use to prove this in the discrete CRN model: If the siphon \(\Omega\) is absent, then no reaction with a reactant in \(\Omega\) can be the next reaction to fire, so by the siphon property, no species in \(\Omega\) is produced in the next step.
Recall that \(\mathsf {P}(\mathbf {c})\) represents the set of species producible from state \(\mathbf {c}\). The next lemma shows that the set of species that cannot ever be produced from a given state is a siphon.
The main result of this section is Theorem 2.27, which justifies that our (seemingly limited) notion of reachability via straight lines is actually quite general. To state the theorem, we define a very general notion of “reasonable rate laws,” which are essentially schedules of rates to assign to reactions over time. All known rate laws, such as mass-action, Michaelis-Menten, Hill function kinetics, as well as our own nondeterministic notion of adversarial rates following straight lines (segment reachability, Definition 2.3), obey this definition. (We justify this below explicitly for mass-action and Definition 2.3, but it is straightforward to verify in the other cases.)
Recall that R is the set of all reactions in some CRN, and \(\Lambda\) is the set of its species.
We note that because \(\mathbf {f}\) is Lebesgue integrable, by Reference [43, Theorem 6.11], \(\mathbf {F}_\alpha (t)\) is locally absolutely continuous.
Although Definition 2.22 explicitly constrains the states \({\boldsymbol \rho }(t)\) to be non-negative, the non-negativity of \({\boldsymbol \rho }(t)\) actually follows from condition (2).16
Conditions (2) and (3) may appear redundant, but in fact each can be obeyed while the other is violated.
For example, consider the reaction \(\alpha : X \rightarrow 2X\), starting in the state \(\lbrace 0 X\rbrace\), with invalid rate schedule \(\mathbf {f}_\alpha (t) = t\), with trajectory \({\boldsymbol \rho }_X(t) = t^2 / 2\). Since the rate \(\mathbf {f}_\alpha (0)\) is 0, this vacuously satisfies (2) at time 0, and, since \({\boldsymbol \rho }_X(t) \gt 0\) for \(t \gt 0\) (X is present at all positive times), (2) is also satisfied for positive times. However, (3) is violated, since \(\lbrace X\rbrace\) is a siphon absent at time 0 but present at future times. This example also demonstrates why condition (3) is required to satisfy our intuitive understanding of reasonable rate laws respecting “causality of production” among species: With only the reaction \(X \rightarrow 2X\), the only way to produce more X is already to have some X.
To see the other case, take reactions \(\alpha : X \rightarrow C\) and \(\beta : C+X \rightarrow C+Y\), starting in state \(\lbrace 1 X, 1 Y, 0 C\rbrace\). Consider the invalid rate schedule \(\mathbf {f}_\alpha (t) = 0\) for all t, \(\mathbf {f}_\beta (t) = 1\) for \(0 \le t \le 1/2\), and \(\mathbf {f}_\beta (t)=0\) for \(t \gt 1/2\), i.e., run only \(\beta\), until X is half gone. This violates (2), since \(\beta\) occurs without its reactant C present. However, the only set of species absent along this trajectory is \(\lbrace C\rbrace\), which is not a siphon, since reaction \(\alpha\) has C as a product but not a reactant, so (3) is vacuously satisfied.
The next lemma shows that the most commonly used rate law, mass-action, gives a valid rate schedule and trajectory according to Definition 2.22. Recall that \(\mathbf {A}({\boldsymbol \rho }(t)): \mathbb {R}_{\ge 0}^\Lambda \rightarrow \mathbb {R}_{\ge 0}^R\) represents the rates of all the reactions in state \({\boldsymbol \rho }(t)\) as given by the mass-action ODEs. For instance, for our mass-action example at the beginning of this section, the function \(\mathbf {f}(t) = \mathbf {A}({\boldsymbol \rho }(t))\) corresponds to the ODEs of Equations (2.1)–(2.3) when written as \(d{\boldsymbol \rho }/dt = \mathbf {M}\cdot \mathbf {f}(t)\).
We say that a rate schedule \(\mathbf {f}: \mathbb {R}_{\ge 0}\rightarrow \mathbb {R}_{\ge 0}^R\) is finite if there is \(t_0 \ge 0\) such that \(\mathbf {f}(t) = \mathbf {0}\) for all \(t \ge t_0\), i.e., reactions eventually stop occurring. The following observation is straightforward to verify, showing that the concatenation of two valid rate schedules, with the first finite, is also a valid rate schedule.
The next lemma shows essentially that our definition of segment-reachability creates a valid rate schedule.
Finally, we have the main result of this section, which shows that segment reachability is as general as any valid rate schedule.
Recall mass-action trajectories correspond to valid rate schedules by Lemma 2.24. Thus, Theorem 2.27 implies the following corollary, which intuitively says that if a state is reachable via a mass-action trajectory (even in the limit of infinite time), then it is segment-reachable.17
3 Stable Computation
We now use segment-reachability (Definition 2.3) to formalize what it means for a CRN to stably compute a function (Definition 3.2). The notion of stable computation is motivated by, and is essentially identical to, the definition of stable computation for population protocols and discrete CRNs [7, 18].
In this section, we justify stable computation by arguing for necessity: CRCs that we can reasonably call “rate-independent” must obey stable computation. Thus, stable computation is immediately useful for negative (impossibility) results: Showing a function cannot be stably computed implies it is not rate-independent in the desired intuitive sense. In the next section (Section 4), we address the other (sufficiency) direction and connect stable computation to another notion of computation based on convergence in the limit as \(t \rightarrow \infty\) that provides very strong guarantees for the desired rate-independent behavior of our constructions. Based on this connection, stable computation is taken as the primary definition of rate-independent computation in this work.
First, to formally define what it means for such a CRN to compute a function in any sense, we single out some aspects of the CRN as semantically meaningful. Formally, a chemical reaction computer (CRC) is a tuple \(\mathcal {C}= (\Lambda ,R,\Sigma ,\Gamma)\), where \((\Lambda ,R)\) is a CRN, \(\Sigma \subsetneq \Lambda\), written as \(\Sigma = \lbrace X_1,\ldots ,X_k\rbrace\),18 is the set of input species, and \(\Gamma \subsetneq \Lambda \setminus \Sigma\) is the set of output species. Input and output values can also be encoded indirectly via combinations of species. An important encoding for the purposes of this article will be the dual-rail representation (discussed in Section 5), which can handle both positive and negative quantities and allows for easier composition of CRN “modules.” Since we focus on single-output functions, we will have either a single output species \(\Gamma = \lbrace Y\rbrace\), or in the case of dual-rail computation, two output species \(\Gamma = \lbrace Y^+, Y^-\rbrace\).
We now define output-stable states and stable computation. Intuitively, output-stable states are “ideal” output states for rate-independent computation: The output is correct and no rate law can change it. Stable computation is then defined with respect to output-stable states by requiring that the correct output-stable state remains reachable no matter what “devious rate laws” may do. Although it is not obvious that the notion of output-stable states remains pertinent when transferred from the discrete setting to the continuous one (see the discussion at the beginning of Section 4), theorem 3.3 below and the subsequent results of Section 4 show that output stability remains crucial.
Note that for a single output species Y, Definition 3.1 says that \(\mathbf {o}(Y) = \mathbf {o}^{\prime }(Y)\) for all \(\mathbf {o}^{\prime }\) such that \(\mathbf {o}\rightsquigarrow \mathbf {o}^{\prime }\). For the sake of brevity and readability, subsequently, we will state many definitions and formal theorem/lemma statements assuming there is only a single output species Y. In each case, there is a straightforward modification of the definition or result, so it applies to CRCs with multiple output species as well.
To extend our results to functions with l outputs, we can compute l separate functions \(f_j:\mathbb {R}_{\ge 0}^k\rightarrow \mathbb {R}_{\ge 0}\) for \(1 \le j \le l\) with l independent CRCs and then combine them into a single CRC with l output species. In particular, we can use reactions like \(X_i \rightarrow X_i^1 + \cdots + X_i^l\) to copy input \(X_i\) to each of the l CRCs.
We now capture in a theorem the intuition that for a CRC to compute a function rate-independently in any reasonable sense, it must stably compute the function. The theorem says that if a CRC does not stably compute, then, no matter what you do, an adversary can “fight back” and make the output substantially (\(\epsilon\)) wrong. The proof uses the definitions of partial states and partial reachability, as well as Theorem E.1, which are in Appendix E.
In some places, we will talk about CRCs with multiple output species representing multi-valued functions:
4 Fair Computation
In the discrete model of CRN kinetics, if the set of states reachable from any input state is finite (i.e., the molecular counts are bounded as a function of the input state), then stable computation as in Definition 3.2 (the correct output-stable state is always reachable) is equivalent to the condition that the CRC is correct under standard stochastic kinetics with probability 1 (the correct output state state is actually reached) [7]. In the continuous CRN model, however, it might seem that the idea of stable computation is not strong enough to achieve intuitively “rate-independent” computation. There are at least two reasons for the concern.
First, it is possible that the output-stable state is always reachable but the mass-action trajectory does not converge to it. For example, consider the following CRC stably computing the identity function \(f(x) = x\):
\begin{align*} X + X &\rightarrow Y + Y \\ Y + X &\rightarrow X + X, \end{align*}
with X as the input species and Y as the output species. From any reachable state, we can reach the output-stable state with all X converted to Y. However, the mass-action trajectory converges to a dynamic equilibrium with \(k_2/(2 k_1 + k_2)\) fraction of X, where \(k_1\), \(k_2\) are rate constants of the two reactions.19 This shows that in general, showing that a CRC stably computes is not sufficient to claim that it computes rate-independently in any intuitive sense.
The second difficulty lies with the notion of output-stable states. While the notion of output-stable states is natural for discrete CRNs where we want the system to actually reach that state to end the computation, convergence to the output-stable state in continuous CRNs will typically be only in the limit \(t \rightarrow \infty\). For example, consider the following CRC:
\begin{align*} X &\rightarrow M + Z \\ M &\rightarrow Y \\ Z + Y &\rightarrow Z + M \\ Z &\rightarrow \emptyset . \end{align*}
The CRC stably computes \(f(x) = x\), since from any reachable state, we can reach the output-stable state \(\mathbf {o}\) with \(f(x)\) amount of Y by converting any remaining X to M, converting any remaining M to Y and completely draining Z. Note that \(\mathbf {o}\) is output-stable, since without Z, Y cannot be converted back to M. Further, under mass-action kinetics (for any choice of rate constants), the CRC converges to \(\mathbf {o}\), since as Z drains, the rate of the third reaction converges to 0. However, at every finite time \(0 \lt t\lt \infty\) in the mass-action trajectory, since Z is present, the state with zero amount of Y is reachable, so an adversary could substantially perturb the output. Thus, one would not call this CRC rate-independent to adversarial perturbations.
While in the previous section, we argued that stable computation is necessary for an intuitive notion of rate-independent computation, the examples above seem to suggest that it is not sufficient and that basing rate-independent computation entirely on stable computation could be ill-founded.
In this section, we develop an alternative approach to defining a very strong notion of “rate-independent” computation not based on stable computation, an approach we term “fair computation.” The approach is based on delineating a very broad class of rate laws, possibly adversarial, that still lead to convergence to the correct output. Based on the previous section (theorem 3.3), it is not surprising that CRCs that fail to stably compute also fail to fairly compute. What is more surprising, however, is that there is a strong connection in the other direction for a class of CRCs (feedforward)—for these CRCs stable computation implies fair computation. All our constructions will be in this class; thus, we obtain very strong rate-independence guarantees in the positive results part of this work. Combined with the results of the previous section, stable computation can thus be used as an easy-to-analyze proxy for proving both positive and negative results on rate-independent computation.
Intuitively, a CRC is said to fairly compute if it converges to the correct output for a broad class of rate laws, with the class being broad enough to capture adversarial behavior. To define the broad class of rate laws for fair computation, we start with the previously defined notion of valid rate schedules, which captures a very general class of chemical kinetics. Nonetheless, we must add an additional condition. In our original definition (Definition 2.22), the reaction rate \(\mathbf {f}_\alpha\) can vary arbitrarily over time as long as \(\alpha\) is applicable whenever \(\mathbf {f}_\alpha\) is positive. There is no requirement the other way—that a reaction must occur with positive rate if it is applicable—allowing for a greater variety of paths (e.g., segment paths with zero flux through some reactions). But, since there is nothing to prevent an adversary from “starving” reactions when they are applicable, preventing convergence, we now need to impose an additional requirement that we call fairness. We formalize this as a strictly positive lower bound \(\mathbf {H}\) on the reaction rate at states where the reaction is applicable. In particular, while the reaction rate vector \(\mathbf {f}(t)\) is a function of the time t, \(\mathbf {H}(\mathbf {c})\) is a function of the state\(\mathbf {c}\). We allow this lower bound to be violated occasionally, so long as it holds for an infinite measure of time. (For example, a fair rate schedule could starve applicable reactions on the unit time intervals \([0,1], [2,3], [4,5], \ldots\))
Requiring that the lower bound \(\mathbf {H}\) be continuous as a function of the state helps to ensure that if \(\mathbf {H}\) converges to zero then the point of convergence is a static state (no reaction is applicable): By continuity, the point of convergence must have \(\mathbf {H}= \mathbf {0}\), which implies that no reaction is applicable by definition 4.1. Note also that \(T_\alpha\) can depend on \(\alpha\); for example, Definition 4.1 allows for \(T_\alpha\) and \(T_\beta\) to be disjoint for different reactions \(\alpha ,\beta\) (i.e., whenever we run one applicable reaction, we starve another applicable reaction).
All typically considered rate laws such as mass-action, Michaelis-Menten, Hill function kinetics, and so on, are fair. We explicitly note this for mass-action CRNs with non-divergent trajectories:
CRCs satisfying the definition below converge to the correct output despite actions of a very powerful adversary. Intuitively, the adversary is allowed to control the rates of all the reactions throughout the computation as long as applicable reactions are not entirely prevented from occurring.
There is a natural generalization of the above definition when \(f: \mathbb {R}_{\ge 0}^k \rightarrow \mathbb {R}_{\ge 0}^l\) has multiple outputs: Require the trajectory \({\boldsymbol \rho }\) to obey \(\lim _{t \rightarrow \infty } ({\boldsymbol \rho }(t) \upharpoonright \left\lbrace Y_1, \ldots , Y_l\right\rbrace) = f(\mathbf {x})\), where \(\left\lbrace Y_1, \ldots , Y_l\right\rbrace\) is the set of all output species.
We now want to establish the connection between fair computation and stable computation. The following lemma shows that in one direction, the connection is immediate: Fair computation is at least as strong as stable computation.
It is natural to wonder if the converse of lemma 4.4 holds, i.e., whether every CRC that stably computes f also fairly computes f. This is not true in general, but the following section shows that it is true for the CRNs we will construct.
4.1 Feedforward CRNs
As we saw before, for general CRCs it is possible that the output-stable state is always reachable but the mass-action trajectory does not converge to it, for instance, the reactions \(X + X \rightarrow Y + Y\) and \(Y + X \rightarrow X + X\) discussed at the start of Section 4. Thus, stable computation does not necessarily imply that the system will eventually produce the correct output. Since the mass-action trajectory defines a fair rate schedule (lemma 4.2), the above example shows that some CRCs stably compute a function but do not fairly compute it; i.e., the converse of lemma 4.4 does not hold for all CRCs.
In contrast to the above example, the feedforward property defined in this section allows us to bridge the definition of stable computation, defined in terms of reachability (what could happen), to convergence (what will happen), defined in terms of fair rate schedules.
Recall that a reaction \(\alpha =\langle \mathbf {r},\mathbf {p}\rangle\)produces a species S if \(\mathbf {r}(S) \lt \mathbf {p}(S)\) and consumesS if \(\mathbf {r}(S) \gt \mathbf {p}(S)\). We say a CRN is feedforward if the species can be ordered so every reaction that produces a species also consumes another species earlier in the ordering. Formally:
Intuitively, we want to avoid situations, as in the example above, where the output-stable state is always reachable but the trajectory does not converge to it. This can happen if the trajectory does not converge or converges to a dynamic equilibrium where reactions balance each other. In contrast, the total flux of reactions in a feedforward CRN must be bounded, because there cannot be a complete “cycle” among the species that balance consumption with production.
We start with the following simple observation: General CRNs can have reactions such as \(A+B \rightarrow A+2B+C\) that do not consume any reactant, and such CRNs clearly have infinite total flux. Luckily, by our definition of a CRN, any reaction \(\alpha\) must either produce or consume some species, and if \(\alpha\) produces a species, the feedforward condition guarantees that \(\alpha\) consumes some other species.
The following lemma will used in formalizing the idea that a feedforward CRN cannot converge to a dynamic equilibrium (like the example beginning this section). General CRNs can have reactions that undo each other’s effect (for instance, \(A \rightarrow B\) and \(B \rightarrow A\)). For such CRNs, we cannot bound total flux as a function of the change in species concentration—indeed, concentrations might remain constant but the two reactions canceling each other can have arbitrarily large flux—allowing for a dynamic equilibrium. In contrast, for feedforward CRNs, the following lemma shows that total flux can be bounded by the change in state:
Finally, we are ready to prove the main lemma about feedforward CRNs, a consequence of which (Lemma 4.9) establishes the connection between stable computation and convergence to the output-stable state for feedforward CRNs.
By applying Lemma 4.8 to a feedforward CRN that also stably computes a function, we obtain the following result, which states that such a CRN will reach the correct output under any fair rate schedule, from any state reachable from \(\mathbf {x}\). This is almost a converse to lemma 4.4; however, note that unlike in lemma 4.4, the CRC is required to be feedforward.
We point out that the feedforward property is not a necessary condition for stable computation to coincide with fair computation. For example, consider the non-feedforward CRC with reactions \(X + X \mathop {\rightarrow }\limits R + Y\) and \(R + R \mathop {\rightarrow }\limits X\). This CRC stably computes \(f(x) = (2/3) x\) [52], and it can also be shown that it fairly computes f. The key property it shares with feedforward CRCs is Lemma 4.7: A large flux through its reactions implies a large change in state.
Since mass-action yields a valid rate schedule (Lemma 2.24) that is fair (Lemma 4.2) and defined at all times for feedforward CRNs (Lemma 4.10), the following corollary is immediate. The corollary states that for a CRC stably computing a function f, the CRC will also converge to the correct output under mass-action kinetics, no matter the positive rate constants, and even if an adversary can first “steer” the CRC to some reachable state before letting mass-action kinetics take over.
5 The Computational Power of Stable Computation
This section presents the main results of our article, delineating the computational power of stable computation. As justified in Sections 3 and 4, we use stable computation as our primary notion of rate-independence. In section 5.1, we discuss the input and output representation of negative quantities and the composition of CRN modules via the “dual-rail representation.” In Section 5.2, we summarize our results on the computational power of stable computation for direct and dual-rail representations. These results are proven in subsequent sections, with positive (section 5.3 for dual-rail, Section 5.4 for direct) and negative directions (Section 5.4 for direct, section 5.6 for dual-rail) separately.
5.1 Dual-rail Representations
The direct concentration-to-value mapping articulated in definition 3.2 is a straightforward way to represent non-negative input and output values. However, there are two reasons why an alternative, albeit more complex, encoding may be preferred. First, since concentrations cannot be negative, computable functions are restricted to non-negative domain and range. Second, as explained below, the direct output encoding frustrates the composition of smaller CRC modules into larger CRCs. The dual-rail representation we introduce in this section is a natural way to solve both problems.
A natural way to represent a (possibly negative) real value in chemistry is to encode it as the difference of two concentrations. Formally, let \(f:\mathbb {R}^k \rightarrow \mathbb {R}\) be a function. A function \(\hat{f}:\mathbb {R}_{\ge 0}^{2k} \rightarrow \mathbb {R}_{\ge 0}^2\) is a dual-rail representation of f if, for all \(\mathbf {x}^+,\mathbf {x}^- \in \mathbb {R}_{\ge 0}^k\), if \((y^+,y^-) = \hat{f}(\mathbf {x}^+,\mathbf {x}^-)\), then \(f(\mathbf {x}^+ - \mathbf {x}^-) = y^+ - y^-\). In other words, \(\hat{f}\) represents f as the difference of its two outputs \(y^+\) and \(y^-\), and it works for any input pair \((\mathbf {x}^+,\mathbf {x}^-)\) whose difference is the input value to f. We can define a CRC to stably compute such a function in the same manner as in Section 3, but having 2k input species \(\Sigma = \lbrace X_1^+,X_1^-,X_2^+,X_2^-,\ldots ,X_k^+,X_k^-\rbrace\) and two output species \(\Gamma = \lbrace Y^+,Y^-\rbrace\).
This definition implies that, for all \(\mathbf {x}= (\mathbf {x}^+, \mathbf {x}^-) \in \mathbb {R}_{\ge 0}^{2k}\), for all \(\mathbf {c}\) such that \(\mathbf {x}\rightsquigarrow \mathbf {c}\), there exists an output-stable state \(\mathbf {o}\) such that \(\mathbf {c}\rightsquigarrow \mathbf {o}\) and \(\mathbf {o}(Y^+) - \mathbf {o}(Y^-) = f(\mathbf {x}^+ - \mathbf {x}^-)\). Note that a single function has an infinite number of dual-rail representations; we require only that a CRC exists to compute one of them to say that the function is stably dual-computable by a CRC.
Besides making negative values chemically representable, we will see that the dual-rail representation plays a key role in allowing the composition of smaller CRC modules into a larger CRC. A key concept to enable such composition is output-obliviousness:
To recognize the problem with composition of the direct representation (definition 3.2), define the composition of two CRCs as the CRC that has the union of their reactions, relabeling the output species of the upstream CRN to be the input species of the downstream one [17, Definition 16]. Then with the direct output representation, output-obliviousness is necessary for composability but provably restricts computational power [17]: (1) Composing two stably computing CRCs stably computes the function composition if and only if the upstream CRC is output-oblivious (except in trivial cases). Intuitively, the downstream CRC can interfere with the upstream computation by prematurely consuming the output. (2) An output-oblivious CRC can only stably compute “superadditive” functions. For example, any CRC stably computing the function \(f(x_1,x_2) = x_1 - x_2\) must necessarily be able to consume its output species, since a state with more than the desired amount of output is reachable by additivity (e.g., state with \(x_1\) amount of Y).
Our results imply that the dual-rail representation allows composition without sacrificing computational power. In particular, our dual-rail constructions are all output-oblivious and thus composable by concatenation, and our negative results apply to dual-rail CRCs whether or not they are output-oblivious. To see roughly why the dual-rail representation helps with composition, consider the \(f(x_1,x_2) = x_1 - x_2\) function above. We can now compute this function with an output-oblivious (and therefore composable) CRC by producing\(Y^-\) to decrease the value of the output, without consuming any output species.
Since dual-rail computation is defined by a CRC that directly computes a dual-rail representation function, Lemmas 4.4 and 4.9 imply the analogous results for dual-rail:
5.2 Statement of Main Results
Below, we summarize our results about the computational power of stable computation, which we prove in subsequent subsections. First, we formally define the relevant classes of functions that will correspond to direct and dual-rail stable computation:
We note that rational linearity has the equivalent characterization that f is linear and maps rational inputs \(\mathbf {x} \in \mathbb {Q}^n\) to rational outputs.
In other words, f is continuous on any subset \(D \subset \mathbb {R}_{\ge 0}^k\) that does not have any coordinate \(i \in \lbrace 1,\ldots ,k\rbrace\) that takes both zero and positive values in D.
The following theorems are the main results of this article, exactly characterizing the functions stably computable with direct and dual-rail representation of inputs and outputs, and showing the equivalence between fair computation and stable computation. Furthermore, although non-feedforward CRCs do exist to compute functions in this class, the theorem shows that feedforward CRCs suffice to compute all such functions.
The following is the dual-rail analog of Theorem 5.9.
5.3 Positive Result: Continuous Piecewise Rational Linear Functions are Dual-rail Computable
Definition 5.7 does not stipulate how complex the “boundaries” between the linear pieces of a piecewise rational linear function can be. The boundaries can even be irrational in some sense, e.g., the function \(f(x_1,x_2) = 0\) if \(x_1 \gt \sqrt {2} \cdot x_2\) and \(f(x_1,x_2) = x_1+x_2\) otherwise. However, if we additionally require that f be continuous, then the following theorem of Ovchinnikov [42, Theorem 2.1] states that f has a particularly clean form, conducive to computation by CRCs.
Note that as a special case, the above result applies when f is continuous piecewise rational linear. The above theorem as stated slightly generalizes the result due to Ovchinnikov [42] (by not requiring D to be closed), although the proof technique is essentially the same. For completeness, we provide the proof in Appendix B.
We use the theorem above to dual-compute continuous piecewise rational linear functions by composing CRC modules for rational linear functions, min, and max. These modules are developed in the following three lemmas:
Note that Lemma 5.15 applies for arbitrary convex domains \(D \subseteq \mathbb {R}^k\), which will be useful in proving Lemma 5.16, where we take D to be a strict convex subset of \(\mathbb {R}_{\ge 0}^k\) in which no coordinate takes both 0 and positive values in D. Since \(\mathbb {R}^k\) is itself convex, it also establishes the “(3) implies (4)” implication in the proof of Theorem 5.10.
5.4 Positive Result: Positive-continuous Piecewise Rational Linear Functions Are Directly Computable
The following lemma is the direct stable computation analog of Lemma 5.15. Intuitively, it is proven by using Lemma 5.15 to stably dual-compute \(2^k\) different continuous piecewise rational linear functions in parallel, one for each possible choice of which input species \(X_1,\ldots ,X_k\) are 0. A separate computation determines which inputs are positive and selects the appropriate output. Note that positive inputs may be discovered “piecemeal,” so the system must be robust to a continual updating of the decision. However, there is a monotonicity to this process that will make consistent updating possible: Once an input species is discovered to be present, we know for sure it is. (Whereas a species that appears to be absent simply may have not yet reacted.)
5.5 Negative Result: Directly Computable Functions Are Positive-continuous Piecewise Rational Linear
5.5.1 Siphons and Output Stability.
To characterize stable function computation for CRCs, we will crucially rely on the notion of siphons, which we recall from Section 2.4, Definition 2.18. Lemma 5.18 shows the underlying relationship between output stability and siphons.
Let \(\mathcal {C}=(\Lambda ,R,\Sigma ,\lbrace Y\rbrace)\) be a CRC. We call a siphon \(\Omega\)stabilizing if, for any state \(\mathbf {d}\), \(\mathbf {d}\upharpoonright \Omega = \mathbf {0}\) implies that \(\mathbf {d}\) is output-stable. In other words, “draining” \(\Omega\) (removing all of its species) causes the output to stabilize.
The next lemma shows the key property of siphons that we will use to reason about stably computing CRC’s: that they characterize the output-stable states, i.e., the only way for the output to stabilize is to drain some stabilizing siphon.
5.5.2 Linearity Restricted to Inputs Draining a Siphon.
This section aims to prove that the function computed by \(\mathcal {C}\), when restricted to inputs that can drain a particular stabilizing siphon, is linear. This is the first step establishing the “piecewise linear” portion of the “positive-continuous piecewise rational linear” claims in Theorem 5.9.
Recall that \(\Psi\), defined in Definition 2.4, is the space of all prepaths (i.e., the vector space in which paths live), and \(\Gamma _\infty\), defined in Definition 2.5, is the space of all paths (allowing infinitely many line segments). We now define a map \(\mathbf {o}\) that intuitively sends a path to the final state that it reaches.
These are the paths that converge to a state where a given stabilizing siphon is drained.
In Lemma 5.23, the reason that we restrict attention to a single output siphon \(\Omega\) is that if different output siphons are drained, then different linear functions may be computed by the CRC. For example, \(X_1+X_2\rightarrow Y\) computes \(f(x_1,x_2) = x_1\) if siphon \(\lbrace X_2\rbrace\) is drained and \(f(x_1,x_2) = x_2\) if siphon \(\lbrace X_1\rbrace\) is drained. If a CRC stably computes, then an output-stable state is reachable from any input state. Thus, by Lemma 5.18, from every input state some stabilizing siphon is drainable, and the following corollary is immediate:
5.5.3 Positive-continuity.
Ideally, to prove that the function stably computed by a CRC is positive-continuous, we would like to prove the following: For any stabilizing siphon \(\Omega\), the set \(\Sigma (\Omega)\) of input states that can drain \(\Omega\) is closed relative to the positive orthant. If that were true, then we could use a fundamental topological result that if a function is piecewise continuous with finitely many pieces (e.g., piecewise linear), and if the domain defining each piece is closed (with agreement between pieces on intersecting domains), then the whole function is continuous. However, the above statement is not true in general. Consider the following counterexample:
\begin{align*} X_1 &\rightarrow C \\ X_1 + X_2 + C &\rightarrow C + Y. \end{align*}
If initially \(\mathbf {i}(X_1) \gt \mathbf {i}(X_2)\), then the stabilizing siphon \(\lbrace X_2\rbrace\) is drainable, by producing \((\mathbf {i}(X_1)\, -\, \mathbf {i}(X_2)) / 2\) of C via the first reaction (leaving an excess of \(X_1\) over \(X_2\) still), then running the second reaction until \(X_2\) is gone to produce Y. Because \(X_2\) can only be consumed if C is produced, which requires consuming a positive amount of \(X_1\), the set of inputs from which \(\lbrace X_2\rbrace\) can be drained is the non-closed set \(\lbrace \mathbf {i}\mid \mathbf {i}(X_1) \gt \mathbf {i}(X_2)\rbrace\). Note that the above CRC does not stably compute anything because, starting from a state with \(\mathbf {i}(X_1) \gt \mathbf {i}(X_2)\), the first reaction could run until \(X_2\) exceeds \(X_1\) before starting the second reaction, which would imply that the amount of Y produced depends on how much reaction 1 happens. It is still unclear whether such counterexamples exist for CRCs stably computing some function that is not identically 0.
Instead of relying on \(\Sigma (\Omega)\) being closed, we must make a more careful argument. In lieu of working directly with the sets \(\Sigma (\Omega)\), we consider “shifted” sets \(\tilde{\Sigma }_{(\mathbf {y}, \mathbf {z})}(\Omega)\) (see Definition 5.28 below). Each \(\tilde{\Sigma }_{(\mathbf {y}, \mathbf {z})}(\Omega)\) is (possibly strictly) contained in the original \(\Sigma (\Omega)\), but they still cover the set of inputs. Crucially, we are able to show that the shifted sets \(\tilde{\Sigma }_{(\mathbf {y}, \mathbf {z})}(\Omega)\) are closed, allowing us to apply the argument at the start of this section to prove that every function stably computed by a CRC is positive-continuous.
Note that the hypothesis \([\mathbf {a}]=\Lambda\) is necessary. Otherwise, consider the reactions \(A\rightarrow C\), \(A+B\rightarrow \emptyset\), and \(F+C\rightarrow C\), with \(\mathbf {a}_i(C)=0\), \(\mathbf {a}_i(F)=1\), \(\mathbf {a}_i(B)=1\), and \(\mathbf {a}_i(A)\) approaching 1 from above as \(i \rightarrow \infty\) (whence \(C \not\in [\mathbf {a}]\)). Then the siphon \(\Omega =\lbrace A,B,F\rbrace\) is drainable from each \(\mathbf {a}_i\) by running \(A \rightarrow C\) until A and B have the same concentration, then running the other two reactions to completion. However, \(\mathbf {a}(A)=\mathbf {a}(B)\), so running any amount of reaction \(A \rightarrow C\) prevents reaction \(A+B\rightarrow \emptyset\) from draining B. Therefore, \(\mathbf {a}\not\in X(\Omega)\) but \(\mathbf {a}_i \in X(\Omega)\) for all i.
Intuitively, in the CRC at the beginning of the section, the obstacle to the set \(\Sigma (\Omega)\) being closed for the siphon \(\Omega = \left\lbrace X_2\right\rbrace\) was that not all species were present initially: To drain \(\Omega\), you first need to produce some (arbitrarily small) amount of C, which leads to the requirement \(\mathbf {i}(X_1) \gt \mathbf {i}(X_2)\). To fix this problem, \(\tilde{\Sigma }_{(\mathbf {y}, \mathbf {z})}(\Omega)\) considers only the states that can drain \(\Omega\) after having been “perturbed” into a state where all species are present, where the full input pair \((\mathbf {y}, \mathbf {z})\) specifies how to perform this perturbation.
To see how this works in the example CRC, let \((\mathbf {y}, \mathbf {z})\) be the full input pair where \(\mathbf {y}= 1X_1, 1X_2, 0C, 0Y\) and \(\mathbf {z}= \left\lbrace .25X_1, .75X_2, .5C, .25Y\right\rbrace\). Then for an input state \(\mathbf {x}= \left\lbrace aX_1, bX_2, 0C, 0Y\right\rbrace\), \(\lambda \mathbf {y}\lt \mathbf {x}\) when \(\lambda \lt \min (a,b)\). As a result, \(\mathbf {x}\in \tilde{\Sigma }_{(\mathbf {y}, \mathbf {z})}(\Omega)\) if \(\mathbf {x}- \lambda \mathbf {y}+ \lambda \mathbf {z}= (a - .75\lambda)X_1, (b - .25\lambda)X_2, .5\lambda C, .25\lambda Y\) can drain \(X_2\) for all \(0 \lt \lambda \lt \min (a,b)\). This happens when \(b - .25\lambda \le a - .75\lambda\), so \(b + .5\lambda \le a\). Taking the limit as \(\lambda \rightarrow 0\), we see that \(b \le a\), so \(\min (a,b) = b\), and taking the limit as \(\lambda \rightarrow \min (a,b) = b\), we see that \(1.5 b \le a\). Since \(1.5b \le a\) is also a sufficient condition for \(\mathbf {x}\) to be in \(\tilde{\Sigma }_{(\mathbf {y}, \mathbf {z})}(\Omega)\), we see that \(\tilde{\Sigma }_{(\mathbf {y}, \mathbf {z})}(\Omega)\) is closed and contained in \(\Sigma (\Omega)\). The next two lemmas show that these properties hold in general.
The following lemma is almost immediate from the definition. The only possible concern one might have is that an input state \(\mathbf {x}\) is contained in \(\tilde{\Sigma }_{(\mathbf {y}, \mathbf {z})}(\Omega)\) “vacuously”—in other words, that there simply does not exist a \(\lambda \gt 0\) such that \(\lambda \mathbf {y}\lt \mathbf {x}\).
The above two lemmas show that \(\tilde{\Sigma }_{(\mathbf {y}, \mathbf {z})}(\Omega)\) is topologically better behaved than \(\Sigma (\Omega)\), although possibly smaller. However, for these sets to be useful for analyzing the behavior of a CRC, we need to show that they are not “too small”—in particular, the next lemma shows that under the assumption that a CRC stably computes a function then for any fixed choice of a full input pair \((\mathbf {y}, \mathbf {z})\), the sets \(\tilde{\Sigma }_{(\mathbf {y}, \mathbf {z})}(\Omega)\) are still big enough to cover all of \(\mathbb {R}_{\gt 0}^\Sigma\).
We now use the above technical machinery to prove the following result, which is almost the full negative result for direct computation, but leaves out the constraint that f is rational linear. Rationality is shown in Section 5.5.4 below. Recall the positive-continuous functions from Definition 5.8.
5.5.4 Rationality.
Recall Definition 5.6 defining rational linear functions and Definition 5.7 defining piecewise rational linear functions.
The main ideas of this section are as follows: To show that a function is piecewise rational linear, we need to show that it is rational linear on some finite set of domains that cover the input space.
A linear function \(f: \mathbb {R}^n \rightarrow \mathbb {R}\) that sends \(\mathbb {Q}^n\) to \(\mathbb {Q}\) is necessarily rational linear. Since a linear function on \(\mathbb {R}^n\) is completely determined by its behavior on any open ball, we can check this condition “locally” on any domain that contains an open ball. (Since f is continuous and all of the points of domains that do not contain an open ball are limit points of the other domains, we can ignore domains that do not contain open balls.) The fact that the function sends \(\mathbb {Q}^n\) to \(\mathbb {Q}\) on such a domain is ultimately a consequence of the fact that the stoichiometry matrix of a CRN has only integer coefficients, so it preserves rationality.
Recall that \(\Psi\), defined in Definition 2.4, is the space of all prepaths, and \(\Gamma _\infty\), defined in Definition 2.5, is the space of all paths.
Note that, since the stoichiometry matrix is an integer-valued matrix, it is automatically the case that \(\mathbf {o}({\boldsymbol \gamma })\) and every \(\mathbf {x}_i({\boldsymbol \gamma })\) is in \(\mathbb {Q}^\Lambda\) for any rational path \({\boldsymbol \gamma }\).
Recall that a closed domain is the closure of an open set.
The following is the main result of Section 5.5, showing a limitation on the computational power of CRCs stably computing functions in the direct sense.
5.6 Negative Result: Dual-rail Computable Functions Are Continuous Piecewise Rational Linear
The following result, a dual-rail analog of Lemma 5.36, is not necessary for the proof of the main result of this section (Lemma 5.40), but it may be of independent interest.
The following is our main negative result for dual-rail CRC’s, a dual-rail analog of Lemma 5.38:
6 Extensions
6.1 A Game-theoretic Formulation of Rate-independent Computation
In this section, we use our notion of a valid rate schedule (Definition 2.22) to propose a framework for studying rate-independent computation. Intuitively, we consider a model where the CRC experiences intermittent “shocks” where the system behaves erratically and the user of the CRC loses some amount of control of the rates of its reactions. We then say that the CRC rate-independently computes a function if, despite these shocks, the CRC still converges to the correct output.
In principle, one could consider different versions of the above model, depending on how much control the user of the CRC is expected to have over the kinetics of the system and how severe the shocks to the system are expected to be. Our goal in this section is to introduce a framework that is general enough to accommodate these various situations.
We will formalize the situation presented above by describing it as an infinite game, played by two players, which we will call the Demon and the Chemist. Here, the Chemist represents the user of the CRC, who is trying to perform some rate-independent computation, and the Demon represents (per tradition) the forces of nature, human failing, and so on, which create the intermittent shocks to the system. In this game, the Demon and the Chemist take turns building a valid rate schedule. The Chemist wins the game if the amount of the output species converges to the correct value as time goes to infinity. If the Chemist has a winning strategy for the game associated with a given CRC, then we say that the CRC rate-independently computes the desired function.
To model the different levels of control that the Chemist has over the system, and the different levels of severity of the shocks that the Demon can induce in the system, we can consider games where the Demon and the Chemist are only allowed to play moves from some restricted class of valid rate schedules. In this article, we have been interested in functions that are rate-independently computable in a very strong sense, i.e., where the shocks are arbitrarily severe—so the Demon is allowed to play any valid rate schedule (Strong Demon).
Once we have developed the game-theoretic model of rate-independent computation more explicitly, we will be able to use our main result Theorem 5.9 to deduce the following claim: The class of functions that one can compute rate-independently with a Strong Demon is effectively insensitive to the amount of control that the Chemist has over the system. In particular, the class of functions that are rate-independently computable by Strong Demon, Strong Chemist games, where both the Demon and the Chemist can play any valid rate law, is the same as any Strong Demon complexity class, where the Chemist is restricted to playing only a subset of valid rate laws.
To formalize the above discussion, we can use the notion of an infinite game [41].
Intuitively, one should imagine that two players, player I and player II, are taking turns playing moves from the set X. Together they form a sequence \((x_1, x_2, \ldots) \in X^\mathbb {N}\) and player I wins if this sequence is in A. In most games of interest, the set of moves that a player can make is restricted by the state of the game. The definition above captures this by using a payoff set such that a player will lose instantly if they play a move outside of some “legal” set of moves. For any previously played sequence, we can thus let moveset\(M(x_1, \ldots , x_n)\) be the legal set of moves for the two players (depending on whether n is odd or even) and assume that the payoff set A is defined relative to these sets of allowed moves accordingly (i.e., the first time that an illegal move is made, the other party wins). An infinite sequence of moves is consistent with the moveset if every move by both players is legal.
For our context, fix a CRC \(\mathcal {C}\) and an initial state \(\mathbf {x}\in \mathbb {R}_{\ge 0}^\Sigma\). The set of possible moves X is the set of all rate schedules that are zero at times \(t \gt 1\). Such moves (i.e., rate schedules) can be naturally concatenated into a longer rate schedule: The concatenation \(\mathbf {f}_1 \circ \cdots \circ \mathbf {f}_n\) is the rate schedule that follows \(\mathbf {f}_i\) for time \(i-1 \le t \lt i\) and zero elsewhere. Our game captures the idea that the Demon wins by making the constructed rate schedule not converge to the desired output, where the Demon is player I and the Chemist is player II. We allow the Demon to play any valid rate schedule, but the Chemist may have varying power as we discuss below.
The most unrestricted moveset contains all possible valid rate schedules. We call this case the Strong Demon Strong Chemist game.
We can also consider games where the players are restricted to only playing a subset of the valid rate schedules. We are particularly interested in games where the Demon is allowed to play any valid rate schedule as above, but the Chemist is restricted to only playing rate schedules from a particular restricted moveset M. It turns out that as long as the chemist has some fair rate schedule to play, the computational power is the same as with a Strong Chemist.
We first define the validity and fairness restrictions on movesets. Then given a restricted moveset for the Chemist, we define the corresponding game similar to definition 6.3.
It may seem that depending on what moves the Chemist is allowed to play, different classes of functions are computable (i.e., the Chemist has a winning strategy). However, the following theorem shows that the class of functions is invariant to the class of movesets that the Chemist has available, as long as there is always at least one fair move:
6.2 Non-zero Initial Context
Throughout this article, we have assumed that the only species allowed to be present at the start of the computation are the input species. Instead, one could consider a model where certain non-input species \(Z_1 \ldots Z_n\), called the initial context [18], have a fixed, nonzero rational concentration at the start of the computation. In this setting, we can clearly compute more functions than in the setting without initial context: For instance, we can easily compute \(f(x_1, \ldots , x_k) = C\) for some nonzero constant C, which is impossible without initial context because f is affine but not linear.
In fact, we can dual-rail compute any continuous piecewise rational affine function \(f: \mathbb {R}^k \rightarrow \mathbb {R}\), i.e., any function that is a rational linear function plus a rational constant: \(f(\mathbf {x}) = \mathbf {a} \cdot \mathbf {x} + b\). To see this, first note that we can compute any rational affine function by using the initial context to offset the value at \(f(\mathbf {0}) = b\). In fact, we can simply let output species \(Y^+\) and \(Y^-\) be the initial context, with \(\mathbf {x}(Y^+) = b\) initially if \(b\gt 0\) and \(\mathbf {x}(Y^-) = -b\) otherwise. Similar machinery to the proof of Lemma 5.15 can be used to extend this to continuous piecewise rational affine functions: By Theorem 5.11, any continuous piecewise rational affine function can be represented in max-min form, and then our construction from Section 5.3 shows that we can compute our given function f. In the direct computation setting, by a construction like the one in Section 5.4, we can compute any positive-continuous piecewise rational affine function \(f: \mathbb {R}^k_{\ge 0} \rightarrow \mathbb {R}_{\ge 0}\).
It also turns out that, even with initial context, we cannot compute any more functions than these. To see this, note that without loss of generality, we can assume that there is only one initial context species Z with initial concentration 1, since we can modify any CRC with initial context to include reactions that convert Z into \(Z_1,\ldots ,Z_n\) with appropriate concentrations.23 Now let \(g(x_1, \ldots , x_k, z)\) be the value that the CRC computes when the input species have initial values \(x_1,\ldots , x_k\) and the initial context species has value z. A priori, g is only well-defined when \(z = 1\), but because paths remain valid after scaling, we know that
for any value of \(z \gt 0\). This shows that g is well-defined on \(D_U\) (recall Definition 5.8) for every U that contains Z, so we can apply the results of Sections 5.5 and 5.6 to characterize g on these domains. Using the fact that \(f(x_1, \ldots , x_k) = g(x_1, \ldots , x_k, 1)\) gives us the desired result.
Since every continuous function on a compact domain is uniformly continuous, it can be uniformly approximated by continuous piecewise rational affine functions. This shows that we can use rate-independent CRNs to approximate continuous functions. Note that for the negative argument above to work, it was important that all of the initial concentrations of the initial context species were rational. For practical purposes, this assumption is not at all restrictive, but it might be of theoretical interest to know what other functions can be computed if the initial concentrations are allowed to be arbitrary real numbers.
7 Conclusion and Open Questions
We characterized the class of functions computable in a manner that is absolutely robust to reaction rates in the continuous model of chemical kinetics. Such rate-independent computation must rely solely on reaction stoichiometry—which reactants, and how many of each, become which products, and how many of each? We considered two methods of encoding inputs and outputs: direct and dual-rail. The dual-rail encoding permits easier composition of modules and can represent negative values; we characterized its computational power as continuous, piecewise rational linear. The direct encoding, however, allows computing functions that are discontinuous at the faces of the nonnegative orthant. For both encodings, we showed matching negative results (showing that nothing more can be computed) and positive results (describing CRNs computing any function in the class).
Since rate-independent computation does not require difficult-to-achieve tuning of parameters or reaction conditions, it may be significantly more “engineerable” than rate-dependent computation. More generally, our work also helps uncover the multifaceted sources of chemical computational power by disentangling the control of stoichiometry from reaction rates.
We now describe some natural open questions.
Reaction complexity of stably computable functions. An interesting question regards the description complexity of functions stably computable by CRNs. Some piecewise linear functions have a number of pieces exponential in the number of inputs; for example, \(f(x_1,\ldots ,x_{2k}) = \min (x_1,x_2) + \min (x_3,x_4) + \cdots + \min (x_{2k-1}, x_{2k})\) has \(2^k\) linear pieces. If we express this function in \(\max \min g_i\) form of Theorem 5.11, then we need \(2^k\) different linear \(g_i\), and thus the construction in the proof of Lemma 5.15 would require exponentially many species and reactions. However, this particular f has a more succinct CRN that stably computes it, namely, the reactions
\[\begin{eqnarray*} X_1 + X_2 &\rightarrow & Y \\ X_3 + X_4 &\rightarrow & Y \\ \vdots \\ X_{2k-1} + X_{2k} &\rightarrow & Y. \end{eqnarray*}\]
Given a positive-continuous, piecewise rational linear function f, how can we tell whether it has a more compact CRN stably computing it than our construction? If it does, then how can we arrive at it?
Requiring “always” fair rate schedules. Lemma 4.9 shows that for a feedforward CRC that stably computes a function f, any fair rate schedule converges to the correct output of f, where fair essentially means that applicable reactions must have positive rate for an infinite subset of times. In other words, the adversary is allowed for some times outside this subset for the rate schedule to be unfair: to “starve” some applicable reactions by keeping their rates at 0 despite all reactants being present. Since such rate schedules seem physically implausible, it is natural to consider a modified definition of computation, one that requires every rate schedule that is always-fair (i.e., for all time, applicable reactions must have positive rate) to converge to the correct output. The following CRC shows that these two requirements can result in different behaviors for a given CRC:
\[\begin{eqnarray*} X &\rightarrow & X+C \\ X &\rightarrow & X^{\prime } \\ C+X^{\prime } &\rightarrow & C+Y. \end{eqnarray*}\]
With initial concentration x of X, every always-fair rate schedule converges to concentration x of Y, so it computes the identity function \(f(x)=x\) under this modified definition. (Note that always-fairness requires the first two reactions to have positive rate at time 0, so C immediately becomes present, at which point it is inevitable to convert all X to \(X^{\prime }\) and all \(X^{\prime }\) to Y.) However, the CRC does not stably compute f: An initially unfair adversary can execute the second reaction to completion, starving the first reaction until it becomes inapplicable. This schedule never produces any C, so Y stays at 0, yet the schedule is fair by the original definition, since, once all reactions become inapplicable, subsequent rate 0 of all reactions for all time vacuously satisfies the definition of fair. It is an interesting question is whether, under the modified definition of always-fair, some CRC can compute a function that is not stably computable.
Arbitrary but fixed rate constants. A related notion of rate-independence is one where the form of rate-law cannot vary, but the constant parameters can, e.g., mass-action rates, where an adversary picks the rate constants (possibly depending on the initial input). For example, consider the following CRN with input species \(A,B,C,X\) and output species Y.
\[\begin{eqnarray*} A + X &\rightarrow & A + Y \\ B + Y &\rightarrow & B + X \\ A + B &\rightarrow & C \\ C + Y &\rightarrow & C + X \\ 3C &\rightarrow & \emptyset . \end{eqnarray*}\]
Let \(a, b, c, x\) denote the initial concentrations of species A, B, C, X. This system does not stably compute any function in the model defined in this article because on input \(a=b\), it can stabilize to any value of output y between 0 and x.
In contrast, consider the above system under mass-action kinetics, where an adversary picks the rate constants, but they remain constant over time. Because A and B are required to produce C, and at least one of them goes to 0 by the third reaction, the concentration of C approaches 0 as time goes to infinity by the final reaction, no matter the rate constants. If \(a\gt b\), then also the concentration of B approaches 0 but the concentration of A remains bounded away from 0. Therefore, the output y converges to x, regardless of what the rate constants are. Similarly, if \(b\gt a\), then the output y approaches 0. When \(a=b\), the concentrations of \(A, B, C\) approach 0 at different rates. The concentrations of \(A, B\) are \(\Theta (\frac{1}{t})\) at time t (rate of bimolecular decay), and the concentration of C is \(\Theta (\frac{1}{\sqrt {t}})\) (rate of trimolecular decay). As a result, the effective rate of conversion of Y to X via the channel \(C + Y \rightarrow C + X\) is \(\Theta (\frac{1}{\sqrt {t}})\). Since this is \(\omega (\frac{1}{t})\) the output y always converges to 0 regardless of the rate constants (in our particular case, the concentration of Y is \(e^{-\Theta (\sqrt {t})}\)). From the above, this CRN computes \(f(a, b, c, x) = x\) when \(a \gt b\) and \(f(a, b, c, x) = 0\) when \(a \le b\), no matter what the rate constants are. This function is discontinuous at points where \(a=b\), so it is not positive-continuous, thus not stably computable by any CRN under our model of rate-independence. It remains open to classify what functions can be computed by mass-action CRNs in which rate constants are chosen adversarially.
Axiomatic derivation of reachability. An important contribution of this article is to develop segment-reachability as the “correct” notion of rate-independent reachability. While we justify our definition of segment-reachability by its equivalence to valid rate schedules (Theorem 2.27), one could imagine taking an axiomatic approach: Any notion of rate-independent reachability ought to satisfy certain constraints. For instance, it should be transitive. Also, if \(\mathbf {d}\) is straight-line reachable from \(\mathbf {c}\), then it is evidently allowed by stoichiometry for the CRN to evolve from \(\mathbf {c}\) to \(\mathbf {d}\), so \(\mathbf {d}\) should be reachable from \(\mathbf {c}\). Of course, there are many relations that satisfy these two constraints: For instance, the relation where every state is reachable from every other state satisfies these two constraints—but this is evidently too permissive. Indeed, our notion of segment-reachability is the transitive closure of the relation of straight-line reachability (Corollary 2.16), so it is minimal among all of the relations with these two properties. However, since our goal is to develop a notion of reachability that is as unrestricted as possible, a more compelling axiomatic derivation would follow from simple set of natural conditions for which segment-reachability is maximal.
Absolute inhibition. In biology it is not uncommon to have rate laws with explicit inhibitors; the higher the concentration of the inhibitor, the slower the reaction. Formally, general rate laws have been described in which reactants are partitioned into consumed species, species that increase the reaction rate (catalysts), and species that decrease the rate (inhibitors) [26]. In our model, while inhibitors can be modeled mechanistically as sequestering reacting species in a non-reactive form (e.g., \(A + B \rightarrow C\) is inhibited by I via the reaction \(A + I \mathop {\rightleftharpoons }\limits AI\)), such inhibition just slows down the reaction rate but does not prevent the reaction entirely. In contrast, one can imagine a definition of reachability in which a reaction is applicable only if all of its reactants are present and all of its inhibitors are absent. It remains an open question whether the computational power of rate-independent computation changes if such absolute inhibition is allowed. We note that this change drastically changes the notion of reachability because it is no longer additive: It might be that \(\mathbf {x}\rightsquigarrow \mathbf {y}\), but \(\mathbf {x}+ \mathbf {c}\not\rightsquigarrow \mathbf {y}+ \mathbf {c}\) if \(\mathbf {c}\) contains some inhibitors of reactions occurring in the first path. Further, for discrete CRNs, absolute inhibition dramatically expands computational power of stable computation to Turing universality [21, 38] (i.e., the ability to compute any function computable by any algorithm). thus it seems reasonable to conjecture that it also expands the computational power in the continuous setting.
Decision problems. In the discrete CRN model, particularly the subset of it known as population protocols [6], a major focus of research is on decision problems with a yes/no output, a.k.a. predicates. The typical output convention partitions the set \(\Lambda\) of species into two disjoint subsets \(\Lambda = \Lambda _\mathsf {Y}\cup \Lambda _\mathsf {N}\), the “yes voters” and “no voters.” The goal of stable computation in this setting is to reach a configuration with a unanimous, correct vote (e.g., if the correct answer is yes, then only species in \(\Lambda _\mathsf {Y}\) are present), which is also stable in the sense that no incorrect voter is producible. In this setting, it has been shown that exactly the semilinear predicates can be stably decided [6, 7] by discrete CRNs.
The concept can be similarly defined with continuous CRNs using our notion of segment-reachability. Say that a CRN with voting species defined as above stably computes a predicate \(\phi : \mathbb {R}_{\ge 0}^k \rightarrow \lbrace \mathsf {Y},\mathsf {N}\rbrace\) if, for any initial configuration \(\mathbf {x}\in \mathbb {R}_{\ge 0}^k\), for any configuration \(\mathbf {c}\) such that \(\mathbf {x}\rightsquigarrow \mathbf {c}\), there is a configuration \(\mathbf {y}\) such that \(\mathbf {c}\rightsquigarrow \mathbf {y}\), and \(\mathbf {y}\) is stably correct, meaning that for all \(\mathbf {y}^{\prime }\) such that \(\mathbf {y}\rightsquigarrow \mathbf {y}^{\prime }\), we have \(\emptyset \ne [\mathbf {y}^{\prime }] \subseteq \Lambda _{\phi (\mathbf {x})}\). In other words, stable computation leads to a nonempty configuration with only “correct” votes (according to \(\phi\)), and this is also true of every configuration reachable from there. We also say in this case that the CRN stably decides the set \(\phi ^{-1}(\mathsf {Y}) \subseteq \mathbb {R}_{\ge 0}^k\) of inputs that map to output \(\mathsf {Y}\). What is the class of sets \(S \subseteq \mathbb {R}_{\ge 0}^k\) that are stably decidable by this definition?
For discrete CRNs, the question of “how long” a system takes to stably compute a function has received much interest [1, 3, 25, 28]. In general, asking questions of time-complexity of continuous computation seems more difficult than in the discrete setting. For general polynomial ODEs, the breakthrough work of Bournez, Graça, and Pouly [12] established a surprisingly tight connection between the length of the trajectory and the Turing machine computation time. Closer to our domain of interest, prior work has studied asymptotic convergence speed for the composition of simple CRN motifs as a function of the number of (feedforward) layers [46]. Although not explicitly stated in terms of rate-independent computation, these modules compute in the rate-independent manner as studied here. It is interesting to ask whether these techniques could be adopted to our constructions to articulate and help resolve questions of computation time.
Acknowledgments
We thank Manoj Gopalkrishnan, Elisa Franco, Damien Woods, and the organizers and participants of the American Mathematical Institute workshop on Mathematical Problems Arising from Biochemical Reaction Networks for insightful discussions. We are grateful to anonymous reviewers for insightful comments and suggestions that have greatly improved this article.
Footnotes
1
Although the finite density of matter physically restricts what the largest concentration of any species could realistically be, standard models of chemical kinetics focus on systems that are far from this bound, mathematically allowing concentrations to be arbitrarily large.
2
A species acts catalytically in a reaction if it is both a reactant and product: e.g., C in reaction \(A + C \rightarrow B + C\). Note that executing this reaction without C does not by itself violate condition (1).
3
See Section 2.4 for examples showing that in the continuous setting conditions (2) and (3) are not mutually redundant.
4
The exact statement of Kurtz’s convergence result [34] is beyond the scope of this article. It considers taking a discrete CRN with initial integer molecular counts given by vector \(\mathbf {c}\in \mathbb {N}^{k}\) in volume \(V \gt 0\), then “scaling up” by factor \(n \in \mathbb {N}\), i.e., considering the discrete CRN with initial state \(n \cdot \mathbf {c}\) in volume \(n \cdot V\). The result, stated very roughly, is that with high probability the n-scaled CRN has a trajectory (dividing discrete counts by \(n \cdot V\) to convert to units of concentration) that stays close to the real-valued mass-action concentration trajectory, but only for time \(O(\log n)\). An example CRN where this time bound is tight is \(A+B \rightarrow A+B+Y,\quad A \rightarrow 2A,\quad B \rightarrow \emptyset\), starting with \(1A, 1B\). In mass-action, the concentrations of A and B at time t are, respectively, \(e^t\) and \(e^{-t}\), whose product is the constant 1, so the first reaction produces Y at a unit rate forever. However, scaling up to \(n A, n B\), the discrete CRN consumes all B in \(O(\log n)\) time, at which point production of Y halts. See References [24, 35] for other example CRNs for which the two models diverge after sufficient time.
5
It is generally supposed that chemical reactions would follow mass-action if properly decomposed into truly elementary reactions and the solution is well-mixed. For example, Michaelis-Menten and Hill-function kinetics can be derived as a limiting case of mass-action when the reaction is initiated and completed at vastly different time scales.
6
For example, consider the reaction \(A \rightarrow 2B\), with ODEs \(\dot{a} = -a\) and \(\dot{b} = 2a\). One can imagine a “chemical” adversary adjusting the rate of the reaction to speed it up or slow it down, but what the adversary cannot control is that to consume x amount of A requires producing exactly 2x amount of B and vice versa. This connection between the rates of consumption of A and production of B does not have an obvious counterpart in more general polynomial ODEs and analog computational models.
7
Our notion of valid rate schedules in definition 2.22 is even more general than a reaction system in that a valid rate schedule does not require a reaction’s rate to be a function of species concentrations, for instance, allowing an adversary to visit the same state twice but apply different reaction rates each time.
8
It is customary to define, for each reaction, a rate constant\(k \in \mathbb {R}_{\gt 0}\) specifying a constant multiplier on the mass-action rate (i.e., the product of the reactant concentrations), but as we are studying CRNs whose output is independent of the reaction rates, we leave the rate constants out of the definition.
9
We allow high-order reactions; i.e., those that have more than two reactants. Such higher order reactions could be eliminated from our constructions using the transformation that replaces \(S_1 + S_2 + \cdots + S_n \rightarrow P_1 + \cdots + P_m\) with bimolecular reactions \(S_1 + S_2 \mathop {\rightleftharpoons }\limits S_{12}, S_{12} + S_3 \mathop {\rightleftharpoons }\limits S_{123}, S_{123} + S_4 \mathop {\rightleftharpoons }\limits S_{1234}, \ldots , S_n + S_{12 \ldots n-1} \rightarrow P_1 + \cdots + P_m\).
10
Note that \(\mathbf {M}\) does not fully specify \(\mathcal {C}\), since catalysts are not modeled: reactions \(Z + X \rightarrow Z + Y\) and \(X \rightarrow Y\) both correspond to the column vector \((-1,1,0)^\top\).
11
Another property of \(\rightsquigarrow\) that we use extensively is scale-invariance: If \(\mathbf {x}\rightsquigarrow \mathbf {y}\), then \(\lambda \mathbf {x}\rightsquigarrow \lambda \mathbf {y}\) for any \(\lambda \ge 0\), which is essentially responsible for the convexity of Lemma 2.7. This does not hold for discrete CRN reachability when \(\lambda \lt 1\), even when the scaled discrete states are well-defined, e.g., the reaction \(X+X \rightarrow Y\) is applicable in state \(\mathbf {x}= \lbrace 2X\rbrace\) but not in state \(0.5 \mathbf {x}= \lbrace 1 X\rbrace\) in the discrete model.
12
Indeed, the mass-action ODE corresponding to the CRN \(2X \rightarrow 3X\) is \(\frac{dx}{dt} = x^2\), which is solved by \(x(t) = \frac{1}{C - t}\), where \(C = 1/x(0)\). This goes to infinity as t approaches C.
13
Note that a more general definition would say \(\mathbf {d}\) is mass-action reachable from \(\mathbf {c}\) if there exist positive rate constants such that the trajectory starting at \(\mathbf {c}\) passes through or approaches \(\mathbf {d}\). Note, however, that this relation is not transitive: For some CRNs, \(\mathbf {c}\) reaches to \(\mathbf {d}\) under one set of rate constants, and \(\mathbf {d}\) reaches to \(\mathbf {x}\) under another set of rate constants, yet no single assignment of rate constants takes the CRN from \(\mathbf {c}\) to \(\mathbf {x}\).
14
It is obvious in the discrete CRN model, and in an intuitive physical sense, that if producing a species initially absent causally requires another species also initially absent and vice versa, then neither species can ever be produced. However, it requires care to prove this for mass-action ODEs. Consider the CRN \(2X \rightarrow 3X\). The corresponding mass-action ODE is \(dx/dt = x^{2}\), and has the property that starting with \(x(0) = 0\), it cannot become positive, i.e., the only solution with \(x(0)=0\) is \(x(t) = 0\) for all \(t \ge 0\). However, the very similar non-mass-action ODE \(dx/dt = x^{1/2}\) has a perfectly valid solution \(x(t) = t^2/4\), which starts at 0 but becomes positive, despite the fact that at \(t=0\), \(dx/dt = 0\). (Though \(x(t) = 0\) for all \(t \ge 0\) is another valid solution.) The difference is that mass-action polynomial rates are locally Lipschitz (have bounded rates of change, unlike \(x^{1/2}\), whose derivative goes to \(\infty\) as \(x \rightarrow 0\)) and so are guaranteed to have a unique solution by the Picard-Lindelöf theorem.
15
An alternative to Definition 2.22 would start with a differentiable trajectory \({\boldsymbol \rho }\) and total flux \(\mathbf {F}\) (related via \({\boldsymbol \rho }(t) = \mathbf {M}\cdot \mathbf {F}(t) + \mathbf {c}\)) and define \(\mathbf {f}= d\mathbf {F}/dt.\) However, requiring differentiable \({\boldsymbol \rho }\) and \(\mathbf {F}\) rules out many natural cases, such as the rate schedules implicit in segment-reachability (Definition 2.2), whose trajectories are not differentiable at cusp points \(\mathbf {b}_i\) in between straight lines and whose rate schedules are not even continuous.
16
Consider a rate schedule that takes concentrations negative: for instance, starting with \(1 X\) and applying reaction \(\alpha : X \rightarrow Y\) with \(\mathbf {F}_\alpha (t) = 2\) for some \(t \gt 0\). To see that this contradicts condition (2) when we naturally generalize notation \([\mathbf {c}]\) to possibly negative \(\mathbf {c}\) (for any \(\mathbf {c}\in \mathbb {R}^\Lambda\), \([\mathbf {c}] = \lbrace S \in \Lambda \ |\ \mathbf {c}(S) \gt 0 \rbrace\)), suppose that \({\boldsymbol \rho }_X(t^{\prime }) \lt 0\) for some species X at some time \(t^{\prime }\). Let \(t_0\) be the supremum of all the times less than \(t^{\prime }\) where \({\boldsymbol \rho }_X(t) \ge 0\). Recall \(\mathbf {F}_\alpha (t)\) is a locally absolutely continuous (and therefore continuous) function. Thus, \({\boldsymbol \rho }(t)\) is also a continuous function so \({\boldsymbol \rho }_X(t_0) \ge 0\). Moreover, for all \(t_0 \lt t \lt t^{\prime }\), we know that \({\boldsymbol \rho }_X(t) \lt 0\) by our choice of \(t_0\). So, by condition (2) \(\mathbf {f}_\alpha (t) = 0\) for all \(\alpha\) where X is a reactant, and therefore (recall \(\mathbf {M}(X,\alpha)\) means the net consumption of X in reaction \(\alpha\))
a contradiction, since \({\boldsymbol \rho }(t^{\prime })\) was assumed to be negative. See also Reference [26, Proposition 2.8], where the term strict is equivalent to condition (2).
17
Although Lemma 2.24 has the precondition that the mass-action trajectory be defined for all time, states reached in finite time by diverging mass-action CRNs can also be segment-reached. For example, for the CRN \(2X \rightarrow 3X\) (with rate constant 1) starting in \(\lbrace 1 X\rbrace\), which diverges as \(t \rightarrow 1\), all states on the trajectory prior to time \(t = 1\) are segment reachable: For each such state, we can construct a valid rate schedule that obeys mass-action until reaching that state and then is constant for all later time.
18
We assume a canonical ordering of \(\Sigma =\lbrace X_1,\ldots ,X_k\rbrace\) so a vector \(\mathbf {x}\in \mathbb {R}_{\ge 0}^k\) (i.e., an input to f) can be viewed equivalently as a state \(\mathbf {x}\in \mathbb {R}_{\ge 0}^\Sigma\) of \(\mathcal {C}\) (i.e., an input to \(\mathcal {C}\)). Note that we have defined valid initial states to contain only the input species \(\Sigma\); other species must have initial concentration 0. Our results would change slightly if we relaxed this assumption—see Section 6.2.
19
The discrepancy between stable computation and correctness under mass-action kinetics shows a major difference between the discrete and continuous CRN models. In the example above, with n total molecules, the discrete CRN model does a random walk on the number of X that is biased toward the dynamic equilibrium point \(n k_2 / (2k_1 + k_2)\). Despite the bias upward when X is below this value, there is always a positive probability to decrease X, so with probability 1, X will eventually reach 0.
20
By Lebesgue’s fundamental theorem of calculus [43, Theorem 6.11, Theorem 6.14], applied to \(\mathbf {f}_\alpha (t)\), we know that \({\boldsymbol \rho }(t)\) is locally absolutely continuous, and almost everywhere differentiable with derivative \(\mathbf {M}\cdot \mathbf {f}(t)\).
21
Note that \(\int _0^\infty \frac{d}{dt} V({\boldsymbol \rho }(t)) dt = \lim _{t \rightarrow \infty } V({\boldsymbol \rho }(t)) - V(\mathbf {c})\) by the fundamental theorem of calculus [43, Theorem 6.10]. To use the fundamental theorem of calculus, we must ensure that \(V({\boldsymbol \rho }(t))\) is locally absolutely continuous—this follows from the fact that the trajectory \({\boldsymbol \rho }(t)\) is defined in terms of a (Lebesgue) integral.
22
This analysis of the CRC for the min function here is directly based on the definition of stable computation. Recently a powerful framework has been developed [52], based on a wide class of so-called noncompetitive CRCs in which no species consumed in a reaction is a reactant in another reaction (not even as a non-consumed catalyst). For such CRCs, the task of proving correctness of stable computation is greatly simplified. Since the CRC computing min is noncompetitive, that framework could be applied here to yield a simpler proof of correctness. We use our direct proof here for the sake of making the current article self-contained.
23
For example, to simulate initial context \(\lbrace 3/2\ Z_1, 1/2\ Z_2 \rbrace\) from \(\lbrace 1\ Z\rbrace\), add the reactions \(2Z \rightarrow Z^{\prime }\) and \(Z^{\prime } \rightarrow 3 Z_1 + Z_2\).
Appendices
A Forward-invariance of Absent Siphons in Mass-action Systems
This section gives an alternate proof of the following result used in Section 2.4, originally due to Angeli, De Leenheer, and Sontag [5].
Lemma 2.19 ([5], Proposition 5.5).
Fix any assignment of positive mass-action rate constants. Let \(\Omega \subseteq \Lambda\) be a set of species. Then \(\Omega\) is a siphon if and only if, for any state \(\mathbf {c}\) such that \(\Omega \cap [\mathbf {c}] = \emptyset\) and any state \(\mathbf {d}\) that is mass-action reachable from \(\mathbf {c}\), \(\Omega \cap [\mathbf {d}] = \emptyset\).
The definition of a valid rate schedule (Definition 2.22, part (2)) requires that if some reactant is 0, then the reaction rate is 0. However, the converse implication (if a reaction rate is 0, then some reactant must be 0) holds for mass-action but not more general rate schedules such as segment-reachability, which are allowed to “starve” applicable reactions by holding their rates at 0. The reverse direction of the proof of Lemma 2.19 uses this converse implication, but the forward direction uses only the more general implication of Definition 2.22, part (2). For the forward direction, the key property used from mass-action is its determinism: It has unique solutions, so to show that the siphon remains absent in all possible reachable states it suffices to show that there is just one solution where the siphon remains absent.
B Max-min Representation of Continuous Piecewise Linear Functions
Here, we prove a slight generalization of Ovchinnikov’s theorem [42]. In Ovchinnikov’s original paper, he only considers piecewise affine functions (in Ovchinnikov’s terminology, piecewise “linear” functions) that are defined on closed domains (that is, closures of open subsets of \(\mathbb {R}^n\)). However, the key proof techniques of Reference [42] did not crucially use this fact. In fact, we apply theorem 5.11 on non-closed domains such as the sets \(D_U\) in the proof of Lemma 5.16. For completeness, we prove the variant of the theorem not requiring D to be closed.
Theorem 5.11 ([42], Theorem 2.1).
Let \(D \subseteq \mathbb {R}^k\) be convex. For every continuous piecewise affine function \(f:D \rightarrow \mathbb {R}\) with components \(g_1,\ldots ,g_p\), there exists a family \(S_1,\ldots ,S_q \subseteq \lbrace 1,\ldots ,p\rbrace\) such that, for all \(\mathbf {x}\in D\), \(f(\mathbf {x}) = \max \nolimits _{i \in \lbrace 1,\ldots ,q\rbrace } \min \nolimits _{j \in S_i} g_j(\mathbf {x}).\)
To prove the theorem, we first prove three lemmas. The first technical lemma is implicit in Reference [42]. The second and third lemmas correspond to Lemmas 2.1 and 2.2 of Reference [42]. The proofs we give of the second and third lemmas are almost identical in content to the proofs of the corresponding lemmas in Reference [42], except for the fact that we consider piecewise affine functions defined over more general subsets of \(\mathbb {R}^n\). The same is true for our proof of Theorem 5.11, which is again almost identical to the proof of Theorem 2.1 in Reference [42].
Note that we define piecewise affine functions to have only finitely many components—without this assumption, the above lemma is false.
C Finding Rational Solutions to Systems of Linear Equations
It is well-known that a system of linear equations with rational coefficients has a rational solution if and only if it has a real solution. The following result shows the slightly generalized claim that rational solutions exist arbitrarily close to all real solutions (i.e., the rational solutions are dense in the real solutions).
D Bounding Reaction Fluxes in Straight-line Reachability
This section is devoted to proving Lemma D.4. Intuitively, it shows that if a CRN can reach from state \(\mathbf {c}\) to state \(\mathbf {d}\) by a straight line (of length \(\Vert \mathbf {d}- \mathbf {c}\Vert\)), then the reaction fluxes required can be bounded by \(O(\Vert \mathbf {d}- \mathbf {c}\Vert)\). This is nontrivial, since one can have reactions that cancel, e.g., \(X \rightarrow Y\) and \(Y \rightarrow X\). The same straight line from \(\mathbf {c}\) to \(\mathbf {d}\) could result from arbitrarily large but equal fluxes of each reaction (plus some other reactions). Lemma D.4 states that we never need arbitrarily large fluxes to get from \(\mathbf {c}\) to \(\mathbf {d}\).
Finally, we have the main result of this section.
E Partial States and Reachability
In this section, we define a notion of “partial” states and reachability, which are used in the proof of theorem 3.3. If \(\Delta \subsetneq \Lambda\), then we say \(\mathbf {p}\in \mathbb {R}_{\ge 0}^\Delta\) is a partial state. Given a state \(\mathbf {c}\in \mathbb {R}_{\ge 0}^\Lambda\), recall that \(\mathbf {c}\upharpoonright \Delta\) is \(\mathbf {c}\) restricted to \(\Delta\), i.e., the partial state \(\mathbf {p}= \mathbf {c}\upharpoonright \Delta \in \mathbb {R}_{\ge 0}^\Delta\) such that \(\mathbf {p}(S) = \mathbf {c}(S)\) for all \(S \in \Delta\).
Let \(k \in \mathbb {N}\cup \lbrace \infty \rbrace .\) Given a state \(\mathbf {c}\in \mathbb {R}_{\ge 0}^\Lambda\) and a partial state \(\mathbf {p}\in \mathbb {R}_{\ge 0}^\Delta\), we write \(\mathbf {c}\rightsquigarrow ^k \mathbf {p}\) if there is a sequence of states \(\mathbf {b}_0, \dots , \mathbf {b}_{k} \in \mathbb {R}_{\ge 0}^\Lambda\) such that \(\mathbf {c}= \mathbf {b}_0 \rightarrow ^1\mathbf {b}_1 \rightarrow ^1\mathbf {b}_2 \rightarrow ^1\cdots \rightarrow ^1\mathbf {b}_{k}\), with \(\mathbf {p}= \mathbf {b}_k \upharpoonright \Delta\) if \(k \in \mathbb {N}\), or \(\mathbf {p}= \lim \nolimits _{i \rightarrow \infty } (\mathbf {b}_i \upharpoonright \Delta)\) if \(k = \infty\). We write \(\mathbf {c}\rightsquigarrow \mathbf {p}\) via \(\left(\mathbf {b}_i\right)_{i=1}^k\) if \(\mathbf {c}\rightsquigarrow ^k \mathbf {p}\) for some \(k \in \mathbb {N}\cup \lbrace \infty \rbrace\) with intermediate states \(\mathbf {b}_0,\mathbf {b}_1,\dots\) as above, or simply \(\mathbf {c}\rightsquigarrow \mathbf {p}\) when the intermediate states \(\mathbf {b}_0,\mathbf {b}_1,\dots\) are implicit. We write \(\mathbf {c}\rightsquigarrow ^\infty _{\mathrm{ss}}\mathbf {p}\) via \(\left(\mathbf {b}_i\right)_{i=1}^k\) if \(\mathbf {c}= \mathbf {b}^{\prime }_0 \rightarrow ^1 \mathbf {b}^{\prime }_1 \rightarrow ^1 \dots\), where for some subsequence \(\mathbf {b}_1,\mathbf {b}_1,\dots\) of \(\mathbf {b}^{\prime }_1,\mathbf {b}^{\prime }_1,\dots\), we have \(\mathbf {p}= \lim \nolimits _{i\rightarrow \infty } (\mathbf {b}_i \upharpoonright \Delta)\), i.e., an infinite subsequence of states converges on concentrations in \(\Delta\).
Note that if there is a state \(\mathbf {d}\) such that \(\mathbf {c}\rightsquigarrow \mathbf {d}\) and \(\mathbf {d}\upharpoonright \Delta = \mathbf {p}\), then \(\mathbf {c}\rightsquigarrow \mathbf {p}\), but it is not apparent from the definition that this is the only way for a partial state to be reachable if the number of line segments is infinite. In particular, it could be that the sequence \(\mathbf {b}_0, \mathbf {b}_1, \ldots\) does not converge to any state (even though the partial states \(\mathbf {b}_0 \upharpoonright \Delta , \mathbf {b}_1 \upharpoonright \Delta , \ldots\) converge to \(\mathbf {p}\)), if some concentration values outside of \(\Delta\) do not converge (for instance, they may oscillate or go to infinity).
Our goal now is to show that in fact, if a partial state \(\mathbf {p}\) is reachable (or even merely \(\rightsquigarrow ^\infty _{\mathrm{ss}}\) reachable), then there is a particular state reachable whose restriction to \(\Delta\) is \(\mathbf {p}\).
Note that by Corollary 2.15, if \(\mathbf {c}\rightsquigarrow \mathbf {p}\) for a partial state \(\mathbf {p}\), then \(\mathbf {c}\rightsquigarrow ^{m+1} \mathbf {p}\), where \(m = \min \lbrace |\Lambda |,|R|\rbrace\).
References
[1]
Dan Alistarh, James Aspnes, David Eisenstat, Rati Gelashvili, and Ronald L. Rivest. 2017. Time-space trade-offs in population protocols. In 28th Annual ACM-SIAM Symposium on Discrete Algorithms. SIAM, 2560–2579.
Dan Alistarh, James Aspnes, and Rati Gelashvili. 2018. Space-optimal majority in population protocols. In 29th Annual ACM-SIAM Symposium on Discrete Algorithms. 2221–2239.
David Angeli, Patrick De Leenheer, and Eduardo D. Sontag. 2006. On the structural monotonicity of chemical reaction networks. In 45th IEEE Conference on Decision and Control. IEEE, 7–12.
David Angeli, Patrick De Leenheer, and Eduardo D. Sontag. 2007. A Petri net approach to the study of persistence in chemical reaction networks. Mathem. Biosci. 210, 2 (2007), 598–618.
Dana Angluin, James Aspnes, Zoë Diamadi, Michael Fischer, and René Peralta. 2006. Computation in networks of passively mobile finite-state sensors. Distrib. Comput. 18, 4 (2006), 235–253. DOI:
Dana Angluin, James Aspnes, and David Eisenstat. 2006. Stably computable predicates are semilinear. In PODC 2006: 25th Annual ACM Symposium on Principles of Distributed Computing. ACM Press, New York, NY, 292–299. DOI:
Dana Angluin, James Aspnes, and David Eisenstat. 2008. Fast computation by population protocols with a leader. Distrib. Comput. 21, 3 (Sept.2008), 183–199.
Amanda Belleville, David Doty, and David Soloveichik. 2017. Hardness of computing and approximating predicates and functions with leaderless population protocols. In 44th International Colloquium on Automata, Languages, and Programming (Leibniz International Proceedings in Informatics (LIPIcs)), Vol. 80. 141:1–141:14.
Olivier Bournez, Daniel S. Graça, and Amaury Pouly. 2017. Polynomial time corresponds to solutions of polynomial ordinary differential equations of polynomial length. J. ACM 64, 6 (Oct.2017). DOI:
Adam Case, Jack H. Lutz, and Donald M. Stull. 2018. Reachability problems for continuous chemical reaction networks. Natur. Comput. 17, 2 (2018), 223–230.
Ho-Lin Chen, David Doty, and David Soloveichik. 2014. Deterministic function computation with chemical reaction networks. Natur. Comput. 13, 4 (2014), 517–534. DOI:
Ho-Lin Chen, David Doty, and David Soloveichik. 2014. Rate-independent computation in continuous chemical reaction networks. In 5th Conference on Innovations in Theoretical Computer Science.
Yuan-Jyue Chen, Neil Dalchau, Niranjan Srinivas, Andrew Phillips, Luca Cardelli, David Soloveichik, and Georg Seelig. 2013. Programmable chemical controllers made from DNA. Nat. Nanotechnol. 8, 10 (2013), 755–762.
Matthew Cook, David Soloveichik, Erik Winfree, and Jehoshua Bruck. 2009. Programmability of chemical reaction networks. In Algorithmic Bioprocesses, Anne Condon, David Harel, Joost N. Kok, Arto Salomaa, and Erik Winfree (Eds.). Springer, Berlin, 543–584.
Wojciech Czerwiński and Łukasz Orlikowski. 2022. Reachability in vector addition systems is Ackermann-complete. In IEEE 62nd Annual Symposium on Foundations of Computer Science (FOCS). 1229–1240.
Élisabeth Degrand, François Fages, and Sylvain Soliman. 2020. Graphical conditions for rate independence in chemical reaction networks. In Computational Methods in Systems Biology, Alessandro Abate, Tatjana Petrov, and Verena Wolf (Eds.). Springer International Publishing, Cham, 61–78.
David Doty and Eric Severson. 2021. Ppsim: A software package for efficiently simulating and visualizing population protocols. In 19th International Conference on Computational Methods in Systems Biology. 245–253. Retrieved from https://arxiv.org/abs/2105.04702.
François Fages, Steven Gay, and Sylvain Soliman. 2015. Inferring reaction systems from ordinary differential equations. Theoret. Comput. Sci. 599 (2015), 64–78. DOI:
François Fages, Guillaume Le Guludec, Olivier Bournez, and Amaury Pouly. 2017. Strong Turing completeness of continuous chemical reaction networks and compilation of mixed analog-digital programs. In International Conference on Computational Methods in Systems Biology. Springer, 108–127.
Leszek Gąsieniec and Grzegorz Staehowiak. 2018. Fast space optimal leader election in population protocols. In 29th Annual ACM-SIAM Symposium on Discrete Algorithms. SIAM, 2653–2667.
Manoj Gopalkrishnan, Ezra Miller, and Anne Shiu. 2013. A projection argument for differential inclusions, with applications to persistence of mass-action kinetics. Symm., Integrabil. Geom.: Meth. Applic. 9, 0 (2013), 25–25.
Hooman Hashemi, Ben Chugg, and Anne Condon. 2020. Composable computation in leaderless, discrete chemical reaction networks. In 26th International Conference on DNA Computing and Molecular Programming (DNA’20). Schloss Dagstuhl-Leibniz-Zentrum für Informatik.
Shigeru Kondo and Takashi Miura. 2010. Reaction-diffusion model as a framework for understanding biological pattern formation. Science 329, 5999 (2010), 1616–1620.
James I. Lathrop, Jack H. Lutz, Robyn R. Lutz, Hugh D. Potter, and Matthew R. Riley. 2020. Population-induced phase transitions and the verification of chemical reaction networks. In 26th International Conference on DNA Computing and Molecular Programming (Leibniz International Proceedings in Informatics (LIPIcs)), Cody Geary and Matthew J. Patitz (Eds.), Vol. 174. Schloss Dagstuhl–Leibniz-Zentrum für Informatik, Dagstuhl, Germany, 5:1–5:17. DOI:
Jérôme Leroux. 2022. The reachability problem for Petri nets is not primitive recursive. In IEEE 62nd Annual Symposium on Foundations of Computer Science (FOCS). 1241–1252.
Sayed Ahmad Salehi, Keshab K. Parhi, and Marc D. Riedel. 2017. Chemical reaction networks for computing polynomials. ACS Synthet. Biol. 6, 1 (2017), 76–83.
Georg Seelig and David Soloveichik. 2009. Time-complexity of multilayered DNA strand displacement circuits. In International Workshop on DNA-based Computers. Springer, 144–153.
Eric E. Severson, David Haley, and David Doty. 2021. Composable computation in discrete chemical reaction networks. Distrib. Comput. 34, 6 (2021), 437–461.
David Soloveichik, Matthew Cook, Erik Winfree, and Jehoshua Bruck. 2008. Computation with finite stochastic chemical reaction networks. Natur. Comput. 7, 4 (2008), 615–633. DOI:
David Soloveichik, Georg Seelig, and Erik Winfree. 2010. DNA as a universal substrate for chemical kinetics. Proc. Nat. Acad. Sci. 107, 12 (2010), 5393.
Niranjan Srinivas, James Parkin, Georg Seelig, Erik Winfree, and David Soloveichik. 2017. Enzyme-free nucleic acid dynamical systems. Science 358, 6369 (2017).
Marko Vasić, Cameron Chalk, Austin Luchsinger, Sarfraz Khurshid, and David Soloveichik. 2022. Programming and training rate-independent chemical reaction networks. Proc. Nat. Acad. Sci. 119, 24 (2022), e2111552119.
Anderson DJoshi B(2024)Chemical mass-action systems as analog computers: Implementing arithmetic computations at specified speedTheoretical Computer Science10.1016/j.tcs.2024.114983(114983)Online publication date: Nov-2024
ITCS '14: Proceedings of the 5th conference on Innovations in theoretical computer science
Understanding the algorithmic behaviors that are in principle realizable in a chemical system is necessary for a rigorous understanding of the design principles of biological regulatory networks. Further, advances in synthetic biology herald the time ...
Unconventional Computation and Natural Computation
Abstract
We study the model of continuous chemical reaction networks (CRNs), consisting of reactions such as that can transform some continuous, nonnegative real-valued quantity (called a concentration) of chemical species A and B into equal ...
We explore the class of real numbers that are computed in real time by deterministic chemical reaction networks that are integral in the sense that all their reaction rate constants are positive integers. We say that such a reaction network computes a ...
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the owner/author(s).
Anderson DJoshi B(2024)Chemical mass-action systems as analog computers: Implementing arithmetic computations at specified speedTheoretical Computer Science10.1016/j.tcs.2024.114983(114983)Online publication date: Nov-2024