<?xml version="1.0" encoding="UTF-8" standalone="yes"?><oembed><version><![CDATA[1.0]]></version><provider_name><![CDATA[Azimuth]]></provider_name><provider_url><![CDATA[https://johncarlosbaez.wordpress.com]]></provider_url><author_name><![CDATA[John Baez]]></author_name><author_url><![CDATA[https://johncarlosbaez.wordpress.com/author/johncarlosbaez/]]></author_url><title><![CDATA[Lyapunov Functions for Complex-Balanced Systems]]></title><type><![CDATA[link]]></type><html><![CDATA[<p><i>guest post by <b><a href="http://www.tcs.tifr.res.in/~manoj/">Manoj Gopalkrishnan</a></b></i></p>
<p><a href="https://johncarlosbaez.wordpress.com/2013/10/11/autocatalysis-in-reaction-networks/">A few weeks back</a>, I promised to tell you more about a long-standing open problem in reaction networks, the &#8216;global attractor conjecture&#8217;. I am not going to quite get there today, but we shall take one step in that direction. </p>
<p>Today&#8217;s plan is to help you make friends with a very useful function we will call the &#8216;free energy&#8217; which comes up <i>all the time</i> in the study of chemical reaction networks. We will see that for complex-balanced systems, the free energy function decreases along trajectories of the rate equation. I&#8217;m going to explain this statement, and give you most of the proof! </p>
<p>The point of doing all this work is that we will then be able to invoke <a href="http://en.wikipedia.org/wiki/Lyapunov_stability">Lyapunov&#8217;s theorem</a> which implies stability of the dynamics. In Greek mythology, <a href="http://en.wikipedia.org/wiki/Sisyphus">Sisyphus</a> was cursed to roll a boulder up a hill only to have it roll down again, so that he had to keep repeating the task for all eternity.  When I think of an unstable equilibrium, I imagine a boulder delicately balanced on top of a hill, which will fall off if given the slightest push:</p>
<div align="center"><img width="450" src="https://i1.wp.com/static.panoramio.com/photos/large/19658582.jpg" alt="" /></div>
<p>or, more abstractly:</p>
<div align="center"><img src="https://i0.wp.com/upload.wikimedia.org/wikipedia/commons/thumb/3/3b/Unstable_equilibrium.svg/200px-Unstable_equilibrium.svg.png" alt="" /></div>
<p>On the other hand, I picture a stable equilibrium as a pebble at the very bottom of a hill.  Whichever way a perturbation takes it is up, so it will roll down again to the bottom:</p>
<div align="center"><img src="https://i1.wp.com/math.ucr.edu/home/baez/mathematical/gopalkrishnan/Stable_Equilibrium.jpg" /></div>
<p>Lyapunov&#8217;s theorem guarantees stability provided we can exhibit a nice enough function <img src='https://s0.wp.com/latex.php?latex=V&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='V' title='V' class='latex' /> that decreases along trajectories. <i>&#8216;Nice enough&#8217;</i> means that, viewing <img src='https://s0.wp.com/latex.php?latex=V&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='V' title='V' class='latex' /> as a height function for the hill, the equilibrium configuration should be at the bottom, and every direction from there should be up. If Sisyphus had dug a pit at the top of the hill for the boulder to rest in, Lyapunov&#8217;s theorem would have applied, and he could have gone home to rest. The moral of the story is that it pays to learn dynamical systems theory!</p>
<p>Because of the connection to Lyapunov&#8217;s theorem, such functions that decrease along trajectories are also called <b>Lyapunov functions</b>.  A similar situation is seen in <a href="http://en.wikipedia.org/wiki/H-theorem">Boltzmann&#8217;s H-theorem</a>, and hence such functions are sometimes called <b>H-functions</b> by physicists.</p>
<p>Another reason for me to talk about these ideas now is that I have posted a new article on the arXiv: </p>
<p>&bull; Manoj Gopalkrishnan, <a href="http://arxiv.org/abs/1312.3043">On the Lyapunov function for complex-balanced mass-action systems</a>.</p>
<p>The free energy function in chemical reaction networks goes back at least to 1972, to this paper:</p>
<p>&bull; Friedrich Horn and Roy Jackson, General mass action kinetics, <i>Arch. Rational Mech. Analysis</i> <b>49</b> (1972), 81&ndash;116.</p>
<p>Many of us credit Horn and Jackson&#8217;s paper with starting the mathematical study of reaction networks. My paper is an exposition of the main result of Horn and Jackson, with a shorter and simpler proof. The gain comes because Horn and Jackson proved all their results from scratch, whereas I&#8217;m using some easy results from graph theory, and the log-sum inequality.</p>
<p>We shall be talking about reaction networks.  Remember the idea from the  <a href="http://math.ucr.edu/home/baez/networks/">network theory</a> series.  We have a set <img src='https://s0.wp.com/latex.php?latex=S&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='S' title='S' class='latex' /> whose elements are called <b>species</b>, for example</p>
<p><img src='https://s0.wp.com/latex.php?latex=S+%3D+%5C%7B+%5Cmathrm%7BH%7D_2%5Cmathrm%7BO%7D%2C+%5Cmathrm%7BH%7D%5E%2B%2C+%5Cmathrm%7BOH%7D%5E-+%5C%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='S = &#92;{ &#92;mathrm{H}_2&#92;mathrm{O}, &#92;mathrm{H}^+, &#92;mathrm{OH}^- &#92;}' title='S = &#92;{ &#92;mathrm{H}_2&#92;mathrm{O}, &#92;mathrm{H}^+, &#92;mathrm{OH}^- &#92;}' class='latex' /></p>
<p>A <b>complex</b> is a vector of natural numbers saying how many items of each species we have.  For example, we could have a complex <img src='https://s0.wp.com/latex.php?latex=%282%2C3%2C1%29.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='(2,3,1).' title='(2,3,1).' class='latex' />  But chemists would usually write this as</p>
<p><img src='https://s0.wp.com/latex.php?latex=2+%5Cmathrm%7BH%7D_2%5Cmathrm%7BO%7D+%2B+3+%5Cmathrm%7BH%7D%5E%2B+%2B+%5Cmathrm%7BOH%7D%5E-&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='2 &#92;mathrm{H}_2&#92;mathrm{O} + 3 &#92;mathrm{H}^+ + &#92;mathrm{OH}^-' title='2 &#92;mathrm{H}_2&#92;mathrm{O} + 3 &#92;mathrm{H}^+ + &#92;mathrm{OH}^-' class='latex' /></p>
<p>A <b>reaction network</b> is a set <img src='https://s0.wp.com/latex.php?latex=S&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='S' title='S' class='latex' /> of species and a set <img src='https://s0.wp.com/latex.php?latex=T&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='T' title='T' class='latex' /> of <b>transitions</b> or <b>reactions</b>, where each transition <img src='https://s0.wp.com/latex.php?latex=%5Ctau+%5Cin+T&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau &#92;in T' title='&#92;tau &#92;in T' class='latex' /> goes from some complex <img src='https://s0.wp.com/latex.php?latex=m%28%5Ctau%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='m(&#92;tau)' title='m(&#92;tau)' class='latex' /> to some complex <img src='https://s0.wp.com/latex.php?latex=n%28%5Ctau%29.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='n(&#92;tau).' title='n(&#92;tau).' class='latex' />  For example, we could have a transition <img src='https://s0.wp.com/latex.php?latex=%5Ctau&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau' title='&#92;tau' class='latex' /> with </p>
<p><img src='https://s0.wp.com/latex.php?latex=m%28%5Ctau%29+%3D+%5Cmathrm%7BH%7D_2%5Cmathrm%7BO%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='m(&#92;tau) = &#92;mathrm{H}_2&#92;mathrm{O}' title='m(&#92;tau) = &#92;mathrm{H}_2&#92;mathrm{O}' class='latex' /> </p>
<p>and </p>
<p><img src='https://s0.wp.com/latex.php?latex=n%28%5Ctau%29+%3D+%5Cmathrm%7BH%7D%5E%2B+%2B+%5Cmathrm%7BOH%7D%5E-&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='n(&#92;tau) = &#92;mathrm{H}^+ + &#92;mathrm{OH}^-' title='n(&#92;tau) = &#92;mathrm{H}^+ + &#92;mathrm{OH}^-' class='latex' /> </p>
<p>In this situation chemists usually write </p>
<p><img src='https://s0.wp.com/latex.php?latex=%5Cmathrm%7BH%7D_2%5Cmathrm%7BO%7D+%5Cto+%5Cmathrm%7BH%7D%5E%2B+%2B+%5Cmathrm%7BOH%7D%5E-&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;mathrm{H}_2&#92;mathrm{O} &#92;to &#92;mathrm{H}^+ + &#92;mathrm{OH}^-' title='&#92;mathrm{H}_2&#92;mathrm{O} &#92;to &#92;mathrm{H}^+ + &#92;mathrm{OH}^-' class='latex' /> </p>
<p>but we want names like <img src='https://s0.wp.com/latex.php?latex=%5Ctau&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau' title='&#92;tau' class='latex' /> for our transitions, so we might write</p>
<p><img src='https://s0.wp.com/latex.php?latex=%5Ctau+%3A+%5Cmathrm%7BH%7D_2%5Cmathrm%7BO%7D+%5Cto+%5Cmathrm%7BH%7D%5E%2B+%2B+%5Cmathrm%7BOH%7D%5E-&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau : &#92;mathrm{H}_2&#92;mathrm{O} &#92;to &#92;mathrm{H}^+ + &#92;mathrm{OH}^-' title='&#92;tau : &#92;mathrm{H}_2&#92;mathrm{O} &#92;to &#92;mathrm{H}^+ + &#92;mathrm{OH}^-' class='latex' /></p>
<p>or </p>
<p><img src='https://s0.wp.com/latex.php?latex=%5Cmathrm%7BH%7D_2%5Cmathrm%7BO%7D+%5Cstackrel%7B%5Ctau%7D%7B%5Clongrightarrow%7D+%5Cmathrm%7BH%7D%5E%2B+%2B+%5Cmathrm%7BOH%7D%5E-&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;mathrm{H}_2&#92;mathrm{O} &#92;stackrel{&#92;tau}{&#92;longrightarrow} &#92;mathrm{H}^+ + &#92;mathrm{OH}^-' title='&#92;mathrm{H}_2&#92;mathrm{O} &#92;stackrel{&#92;tau}{&#92;longrightarrow} &#92;mathrm{H}^+ + &#92;mathrm{OH}^-' class='latex' /></p>
<p>As John explained in <a href="http://math.ucr.edu/home/baez/networks/networks_3.html">Part 3</a> of the network theory series, chemists like to work with a vector of nonnegative real numbers <img src='https://s0.wp.com/latex.php?latex=x%28t%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x(t)' title='x(t)' class='latex' /> saying the <b>concentration</b> of each species at time <img src='https://s0.wp.com/latex.php?latex=t.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='t.' title='t.' class='latex' />  If we know a <b>rate constant</b> <img src='https://s0.wp.com/latex.php?latex=r%28%5Ctau%29+%3E+0&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='r(&#92;tau) &gt; 0' title='r(&#92;tau) &gt; 0' class='latex' /> for each transition <img src='https://s0.wp.com/latex.php?latex=%5Ctau%2C&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau,' title='&#92;tau,' class='latex' /> we can write down an equation saying how these concentrations change with time:</p>
<p><img src='https://s0.wp.com/latex.php?latex=%5Cdisplaystyle%7B+%5Cfrac%7Bd+x%7D%7Bd+t%7D+%3D+%5Csum_%7B%5Ctau+%5Cin+T%7D+r%28%5Ctau%29+%28n%28%5Ctau%29+-+m%28%5Ctau%29%29+x%5E%7Bm%28%5Ctau%29%7D+%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;displaystyle{ &#92;frac{d x}{d t} = &#92;sum_{&#92;tau &#92;in T} r(&#92;tau) (n(&#92;tau) - m(&#92;tau)) x^{m(&#92;tau)} }' title='&#92;displaystyle{ &#92;frac{d x}{d t} = &#92;sum_{&#92;tau &#92;in T} r(&#92;tau) (n(&#92;tau) - m(&#92;tau)) x^{m(&#92;tau)} }' class='latex' /> </p>
<p>This is called the <b>rate equation</b>.  It&#8217;s really a system of ODEs describing how the concentration of each species change with time. Here an expression like <img src='https://s0.wp.com/latex.php?latex=x%5Em&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x^m' title='x^m' class='latex' /> is shorthand for the monomial <img src='https://s0.wp.com/latex.php?latex=%7Bx_1%7D%5E%7Bm_1%7D+%5Ccdots+%7Bx_k%7D%5E%7Bm_k%7D.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='{x_1}^{m_1} &#92;cdots {x_k}^{m_k}.' title='{x_1}^{m_1} &#92;cdots {x_k}^{m_k}.' class='latex' /></p>
<p>John and Brendan talked about <i>complex balance</i> in <a href="http://math.ucr.edu/home/baez/networks/networks_9.html">Part 9</a>.  I&#8217;m going to recall this definition, from a slightly different point of view that will be helpful for the result we are trying to prove. </p>
<p>We can draw a reaction network as a graph!  The vertices of this graph are all the complexes <img src='https://s0.wp.com/latex.php?latex=m%28%5Ctau%29%2C+n%28%5Ctau%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='m(&#92;tau), n(&#92;tau)' title='m(&#92;tau), n(&#92;tau)' class='latex' /> where <img src='https://s0.wp.com/latex.php?latex=%5Ctau+%5Cin+T.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau &#92;in T.' title='&#92;tau &#92;in T.' class='latex' />  The edges are all the transitions <img src='https://s0.wp.com/latex.php?latex=%5Ctau%5Cin+T.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau&#92;in T.' title='&#92;tau&#92;in T.' class='latex' />   We think of each edge <img src='https://s0.wp.com/latex.php?latex=%5Ctau&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau' title='&#92;tau' class='latex' /> as directed, going from <img src='https://s0.wp.com/latex.php?latex=m%28%5Ctau%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='m(&#92;tau)' title='m(&#92;tau)' class='latex' /> to <img src='https://s0.wp.com/latex.php?latex=n%28%5Ctau%29.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='n(&#92;tau).' title='n(&#92;tau).' class='latex' /></p>
<p>We will call the map that sends each transition <img src='https://s0.wp.com/latex.php?latex=%5Ctau&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau' title='&#92;tau' class='latex' /> to the positive real number <img src='https://s0.wp.com/latex.php?latex=r%28%5Ctau%29+x%5E%7Bm%28%5Ctau%29%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='r(&#92;tau) x^{m(&#92;tau)}' title='r(&#92;tau) x^{m(&#92;tau)}' class='latex' /> the <b>flow</b> <img src='https://s0.wp.com/latex.php?latex=f_x%28%5Ctau%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_x(&#92;tau)' title='f_x(&#92;tau)' class='latex' /> on this graph. The rate equation can be rewritten very simply in terms of this flow as:</p>
<p><img src='https://s0.wp.com/latex.php?latex=%5Cdisplaystyle%7B+%5Cfrac%7Bd+x%7D%7Bd+t%7D+%3D+%5Csum_%7B%5Ctau+%5Cin+T%7D%28n%28%5Ctau%29+-+m%28%5Ctau%29%29+%5C%2C+f_x%28%5Ctau%29+%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;displaystyle{ &#92;frac{d x}{d t} = &#92;sum_{&#92;tau &#92;in T}(n(&#92;tau) - m(&#92;tau)) &#92;, f_x(&#92;tau) }' title='&#92;displaystyle{ &#92;frac{d x}{d t} = &#92;sum_{&#92;tau &#92;in T}(n(&#92;tau) - m(&#92;tau)) &#92;, f_x(&#92;tau) }' class='latex' /></p>
<p>where the right-hand side is now a linear expression in the flow <img src='https://s0.wp.com/latex.php?latex=f_x.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_x.' title='f_x.' class='latex' /> </p>
<p>Flows of water, or electric current, obey a version of <a href="http://en.wikipedia.org/wiki/Kirchhoff's_circuit_laws#Kirchhoff.27s_current_law_.28KCL.29">Kirchhoff&#8217;s current law</a>. Such flows are called <b>conservative flows</b>. The following two lemmas from graph theory are immediate for conservative flows:</p>
<p><b>Lemma 1.</b> If f is a conservative flow then the net flow across every cut is zero.</p>
<p>A <a href="https://en.wikipedia.org/wiki/Cut_%28graph_theory%29">cut</a> is a way of chopping the graph in two, like this:</p>
<div align="center">
<a href="https://en.wikipedia.org/wiki/Cut_%28graph_theory%29"><br />
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Max-cut.svg/200px-Max-cut.svg.png" /></a></div>
<p>It&#8217;s easy to prove Lemma 1 by induction, moving one vertex across the cut at a time.</p>
<p><b>Lemma 2.</b> If a conservative flow exists then every edge <img src='https://s0.wp.com/latex.php?latex=%5Ctau%5Cin+T&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau&#92;in T' title='&#92;tau&#92;in T' class='latex' /> is part of a directed cycle. </p>
<p>Why is Lemma 2 true? Suppose there exists an edge <img src='https://s0.wp.com/latex.php?latex=%5Ctau+%3A+m+%5Cto+n&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau : m &#92;to n' title='&#92;tau : m &#92;to n' class='latex' /> that is not part of any directed cycle. We will exhibit a cut with non-zero net flow. By Lemma 1, this will imply that the flow is not conservative. </p>
<p>One side of the cut will consist of all vertices from which <img src='https://s0.wp.com/latex.php?latex=m&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='m' title='m' class='latex' /> is reachable by a directed path in the reaction network. The other side of the cut contains at least <img src='https://s0.wp.com/latex.php?latex=n%2C&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='n,' title='n,' class='latex' /> since <img src='https://s0.wp.com/latex.php?latex=m&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='m' title='m' class='latex' /> is not reachable from <img src='https://s0.wp.com/latex.php?latex=n%2C&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='n,' title='n,' class='latex' /> by the assumption that <img src='https://s0.wp.com/latex.php?latex=%5Ctau&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau' title='&#92;tau' class='latex' /> is not part of a directed cycle.  There is flow going from left to right of the cut, across the transition <img src='https://s0.wp.com/latex.php?latex=%5Ctau.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau.' title='&#92;tau.' class='latex' /> Since there can be no flow coming back, this cut has nonzero net flow, and we&#8217;re done.   &nbsp; &nbsp; &#9646;</p>
<p>Now, back to the rate equation!  We can ask if the flow <img src='https://s0.wp.com/latex.php?latex=f_x&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_x' title='f_x' class='latex' /> is conservative. That is, we can ask if, for every complex <img src='https://s0.wp.com/latex.php?latex=n&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='n' title='n' class='latex' />:</p>
<p><img src='https://s0.wp.com/latex.php?latex=%5Cdisplaystyle%7B+%5Csum_%7B%5Ctau+%3A+m+%5Cto+n%7D+f_x%28m%2Cn%29+%3D+%5Csum_%7B%5Ctau+%3A+n+%5Cto+p%7D+f_x%28n%2Cp%29.+%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;displaystyle{ &#92;sum_{&#92;tau : m &#92;to n} f_x(m,n) = &#92;sum_{&#92;tau : n &#92;to p} f_x(n,p). }' title='&#92;displaystyle{ &#92;sum_{&#92;tau : m &#92;to n} f_x(m,n) = &#92;sum_{&#92;tau : n &#92;to p} f_x(n,p). }' class='latex' /> </p>
<p>In words, we are asking if the sum of the flow through all transitions coming in to <img src='https://s0.wp.com/latex.php?latex=n&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='n' title='n' class='latex' /> equals the sum of the flow through all transitions going out of <img src='https://s0.wp.com/latex.php?latex=n.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='n.' title='n.' class='latex' /> If this condition is satisfied at a vector of concentrations <img src='https://s0.wp.com/latex.php?latex=x+%3D+%5Calpha%2C&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x = &#92;alpha,' title='x = &#92;alpha,' class='latex' /> so that the flow <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha' title='f_&#92;alpha' class='latex' /> is conservative, then we call <img src='https://s0.wp.com/latex.php?latex=%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;alpha' title='&#92;alpha' class='latex' /> a <b>point of complex balance</b>. If in addition, every component of <img src='https://s0.wp.com/latex.php?latex=%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;alpha' title='&#92;alpha' class='latex' /> is <i>strictly positive</i>, then we say that the system is <b>complex balanced</b>.</p>
<p>Clearly if <img src='https://s0.wp.com/latex.php?latex=%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;alpha' title='&#92;alpha' class='latex' /> is a point of complex balance, it&#8217;s an <b>equilibrium solution</b> of the rate equation.  In other words, <img src='https://s0.wp.com/latex.php?latex=x%28t%29+%3D+%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x(t) = &#92;alpha' title='x(t) = &#92;alpha' class='latex' /> is a solution of the rate equation, where <img src='https://s0.wp.com/latex.php?latex=x%28t%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x(t)' title='x(t)' class='latex' /> never changes.  </p>
<p>I&#8217;m using &#8216;equilibrium&#8217; the way mathematicians do.  But I should warn you that chemists use &#8216;equilibrium&#8217; to mean something more than merely a solution that doesn&#8217;t change with time.  They often also mean it&#8217;s a point of complex balance, or even more.  People actually get into arguments about this at conferences.</p>
<p>Complex balance implies more than mere equilibrium.  For starters, if a reaction network is such that every edge belongs to a directed cycle, then one says that the reaction network is <b>weakly reversible</b>. So Lemmas 1 and 2 establish that complex-balanced systems must be weakly reversible!</p>
<p>From here on, we fix a complex-balanced system, with <img src='https://s0.wp.com/latex.php?latex=%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;alpha' title='&#92;alpha' class='latex' /> a strictly positive point of complex balance.</p>
<p><b>Definition.</b> The <b>free energy function</b> is the function </p>
<p><img src='https://s0.wp.com/latex.php?latex=g_%5Calpha%28x%29+%3D+%5Csum_%7Bs%5Cin+S%7D+x_s+%5Clog+x_s+-+x_s+-+x_s+%5Clog+%5Calpha_s&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='g_&#92;alpha(x) = &#92;sum_{s&#92;in S} x_s &#92;log x_s - x_s - x_s &#92;log &#92;alpha_s' title='g_&#92;alpha(x) = &#92;sum_{s&#92;in S} x_s &#92;log x_s - x_s - x_s &#92;log &#92;alpha_s' class='latex' /> </p>
<p>where the sum is over all species in <img src='https://s0.wp.com/latex.php?latex=S.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='S.' title='S.' class='latex' /></p>
<p>The whole point of defining the function this way is because it is the unique function, up to an additive constant, whose partial derivative with respect to <img src='https://s0.wp.com/latex.php?latex=x_s&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x_s' title='x_s' class='latex' /> is <img src='https://s0.wp.com/latex.php?latex=%5Clog+x_s%2F%5Calpha_s.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;log x_s/&#92;alpha_s.' title='&#92;log x_s/&#92;alpha_s.' class='latex' /> This is important enough that we write it as a lemma. To state it in a pithy way, it is helpful to introduce vector notation for division and logarithms. If <img src='https://s0.wp.com/latex.php?latex=x&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x' title='x' class='latex' /> and <img src='https://s0.wp.com/latex.php?latex=y&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='y' title='y' class='latex' /> are two vectors, we will understand <img src='https://s0.wp.com/latex.php?latex=x%2Fy&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x/y' title='x/y' class='latex' /> to mean the vector <img src='https://s0.wp.com/latex.php?latex=z&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='z' title='z' class='latex' /> such that <img src='https://s0.wp.com/latex.php?latex=z_s+%3D+x_s%2F+y_s&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='z_s = x_s/ y_s' title='z_s = x_s/ y_s' class='latex' /> coordinate-wise. Similarly <img src='https://s0.wp.com/latex.php?latex=%5Clog+x&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;log x' title='&#92;log x' class='latex' /> is defined in a coordinate-wise sense as the vector with coordinates <img src='https://s0.wp.com/latex.php?latex=%28%5Clog+x%29_s+%3D+%5Clog+x_s.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='(&#92;log x)_s = &#92;log x_s.' title='(&#92;log x)_s = &#92;log x_s.' class='latex' /></p>
<p><b>Lemma 3.</b> The gradient <img src='https://s0.wp.com/latex.php?latex=%5Cnabla+g_%5Calpha%28x%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;nabla g_&#92;alpha(x)' title='&#92;nabla g_&#92;alpha(x)' class='latex' /> of <img src='https://s0.wp.com/latex.php?latex=g_%5Calpha%28x%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='g_&#92;alpha(x)' title='g_&#92;alpha(x)' class='latex' /> equals <img src='https://s0.wp.com/latex.php?latex=%5Clog%28x%2F%5Calpha%29.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;log(x/&#92;alpha).' title='&#92;log(x/&#92;alpha).' class='latex' /></p>
<p>We&#8217;re ready to state our main theorem!</p>
<p><b>Theorem.</b> Fix a trajectory <img src='https://s0.wp.com/latex.php?latex=x%28t%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x(t)' title='x(t)' class='latex' /> of the rate equation. Then <img src='https://s0.wp.com/latex.php?latex=g_%5Calpha%28x%28t%29%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='g_&#92;alpha(x(t))' title='g_&#92;alpha(x(t))' class='latex' /> is a decreasing function of time <img src='https://s0.wp.com/latex.php?latex=t.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='t.' title='t.' class='latex' /> Further, it is strictly decreasing unless <img src='https://s0.wp.com/latex.php?latex=x%28t%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x(t)' title='x(t)' class='latex' /> is an equilibrium solution of the rate equation.</p>
<p>I find precise mathematical statements reassuring. You can often make up your mind about the truth value from a few examples. Very often, though not always, a few well-chosen examples are all you need to get the general idea for the proof. Such is the case for the above theorem. There are three key examples: the two-cycle, the three-cycle, and the figure-eight.</p>
<p><b>The two-cycle.</b>   The two-cycle is this reaction network:</p>
<div align="center"><img src="https://i1.wp.com/math.ucr.edu/home/baez/mathematical/gopalkrishnan/2cycle.png" alt="" /></div>
<p>It has two complexes <img src='https://s0.wp.com/latex.php?latex=m&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='m' title='m' class='latex' /> and <img src='https://s0.wp.com/latex.php?latex=n&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='n' title='n' class='latex' /> and two transitions <img src='https://s0.wp.com/latex.php?latex=%5Ctau_1+%3D+m%5Cto+n&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau_1 = m&#92;to n' title='&#92;tau_1 = m&#92;to n' class='latex' /> and <img src='https://s0.wp.com/latex.php?latex=%5Ctau_2+%3D+n%5Cto+m%2C&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau_2 = n&#92;to m,' title='&#92;tau_2 = n&#92;to m,' class='latex' /> with rates <img src='https://s0.wp.com/latex.php?latex=r_1+%3D+r%28%5Ctau_1%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='r_1 = r(&#92;tau_1)' title='r_1 = r(&#92;tau_1)' class='latex' /> and <img src='https://s0.wp.com/latex.php?latex=r_2+%3D+r%28%5Ctau_2%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='r_2 = r(&#92;tau_2)' title='r_2 = r(&#92;tau_2)' class='latex' /> respectively.</p>
<p>Fix a solution <img src='https://s0.wp.com/latex.php?latex=x%28t%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x(t)' title='x(t)' class='latex' /> of the rate equation. Then the flow from <img src='https://s0.wp.com/latex.php?latex=m&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='m' title='m' class='latex' /> to <img src='https://s0.wp.com/latex.php?latex=n&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='n' title='n' class='latex' /> equals <img src='https://s0.wp.com/latex.php?latex=r_1+x%5Em&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='r_1 x^m' title='r_1 x^m' class='latex' /> and the backward flow equals <img src='https://s0.wp.com/latex.php?latex=r_2+x%5En.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='r_2 x^n.' title='r_2 x^n.' class='latex' /> The condition for <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha' title='f_&#92;alpha' class='latex' /> to be a conservative flow requires that <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha+%3D+r_1+%5Calpha%5Em+%3D+r_2+%5Calpha%5En.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha = r_1 &#92;alpha^m = r_2 &#92;alpha^n.' title='f_&#92;alpha = r_1 &#92;alpha^m = r_2 &#92;alpha^n.' class='latex' /> This is one binomial equation in at least one variable, and clearly has a solution in the positive reals. We have just shown that every two-cycle is complex balanced.</p>
<p>The derivative <img src='https://s0.wp.com/latex.php?latex=d+g_%5Calpha%28x%28t%29%29%2Fd+t&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='d g_&#92;alpha(x(t))/d t' title='d g_&#92;alpha(x(t))/d t' class='latex' /> can now be computed by the chain rule, using Lemma 3.  It works out to <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha' title='f_&#92;alpha' class='latex' /> times</p>
<p><img src='https://s0.wp.com/latex.php?latex=%5Cdisplaystyle%7B+%5Cleft%28%28x%2F%5Calpha%29%5Em+-+%28x%2F%5Calpha%29%5En%5Cright%29+%5C%2C+%5Clog%5Cfrac%7B%28x%2F%5Calpha%29%5En%7D%7B%28x%2F%5Calpha%29%5Em%7D+%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;displaystyle{ &#92;left((x/&#92;alpha)^m - (x/&#92;alpha)^n&#92;right) &#92;, &#92;log&#92;frac{(x/&#92;alpha)^n}{(x/&#92;alpha)^m} }' title='&#92;displaystyle{ &#92;left((x/&#92;alpha)^m - (x/&#92;alpha)^n&#92;right) &#92;, &#92;log&#92;frac{(x/&#92;alpha)^n}{(x/&#92;alpha)^m} }' class='latex' /></p>
<p>This is never positive, and it&#8217;s zero if and only if </p>
<p><img src='https://s0.wp.com/latex.php?latex=%28x%2F%5Calpha%29%5Em+%3D+%28x%2F%5Calpha%29%5En&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='(x/&#92;alpha)^m = (x/&#92;alpha)^n' title='(x/&#92;alpha)^m = (x/&#92;alpha)^n' class='latex' />   </p>
<p>Why is this? Simply because the logarithm of something greater than 1 is positive, while the log of something less than 1 is negative, so that the sign of <img src='https://s0.wp.com/latex.php?latex=%28x%2F%5Calpha%29%5Em+-+%28x%2F%5Calpha%29%5En&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='(x/&#92;alpha)^m - (x/&#92;alpha)^n' title='(x/&#92;alpha)^m - (x/&#92;alpha)^n' class='latex' /> is always opposite the sign of <img src='https://s0.wp.com/latex.php?latex=%5Clog+%5Cfrac%7B%28x%2F%5Calpha%29%5En%7D%7B%28x%2F%5Calpha%29%5Em%7D.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;log &#92;frac{(x/&#92;alpha)^n}{(x/&#92;alpha)^m}.' title='&#92;log &#92;frac{(x/&#92;alpha)^n}{(x/&#92;alpha)^m}.' class='latex' /> We have verified our theorem for this example. </p>
<p>(Note that <img src='https://s0.wp.com/latex.php?latex=%28x%2F%5Calpha%29%5Em+%3D+%28x%2F%5Calpha%29%5En&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='(x/&#92;alpha)^m = (x/&#92;alpha)^n' title='(x/&#92;alpha)^m = (x/&#92;alpha)^n' class='latex' /> occurs when <img src='https://s0.wp.com/latex.php?latex=x+%3D+%5Calpha%2C&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='x = &#92;alpha,' title='x = &#92;alpha,' class='latex' /> but also at other points: in this example, there is a whole <i>hypersurface</i> consisting of points of complex balance.)</p>
<p>In fact, this simple calculation achieves much more. </p>
<p><b>Definition.</b> A reaction network is <b>reversible</b> if for every transition <img src='https://s0.wp.com/latex.php?latex=%5Ctau++%3A+m+%5Cto+n&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau  : m &#92;to n' title='&#92;tau  : m &#92;to n' class='latex' /> there is a transition <img src='https://s0.wp.com/latex.php?latex=%5Ctau%27+%3A+m+%5Cto+n&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau&#039; : m &#92;to n' title='&#92;tau&#039; : m &#92;to n' class='latex' /> going back, called the <b>reverse</b> of <img src='https://s0.wp.com/latex.php?latex=%5Ctau.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau.' title='&#92;tau.' class='latex' />   Suppose we have a reversible reaction network and a vector of concentrations <img src='https://s0.wp.com/latex.php?latex=%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;alpha' title='&#92;alpha' class='latex' /> such that the flow along each edge equals that along the edge going back:</p>
<p><img src='https://s0.wp.com/latex.php?latex=f_%5Calpha%28%5Ctau%29+%3D+f_%5Calpha%28%5Ctau%27%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha(&#92;tau) = f_&#92;alpha(&#92;tau&#039;)' title='f_&#92;alpha(&#92;tau) = f_&#92;alpha(&#92;tau&#039;)' class='latex' /></p>
<p>whenever <img src='https://s0.wp.com/latex.php?latex=%5Ctau%27&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau&#039;' title='&#92;tau&#039;' class='latex' /> is the reverse <img src='https://s0.wp.com/latex.php?latex=%5Ctau.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;tau.' title='&#92;tau.' class='latex' /> Then we say the reaction network is <b>detailed balanced</b>, and <img src='https://s0.wp.com/latex.php?latex=%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;alpha' title='&#92;alpha' class='latex' /> is a <b>point of detailed balance</b>.</p>
<p>For a detailed-balanced system, the time derivative of <img src='https://s0.wp.com/latex.php?latex=g_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='g_&#92;alpha' title='g_&#92;alpha' class='latex' /> is a sum over the contributions of pairs consisting of an edge and its reverse.  Hence, the two-cycle calculation shows that the theorem holds for all detailed balanced systems!</p>
<p>This linearity trick is going to prove very valuable. It will allow us to treat the general case of complex balanced systems <i>one cycle at a time</i>. The proof for a single cycle is essentially contained in the example of a three-cycle, which we treat next:</p>
<p><b>The three-cycle.</b>  The three-cycle is this reaction network:</p>
<div align="center"><img src="https://i2.wp.com/math.ucr.edu/home/baez/mathematical/gopalkrishnan/3cycle.png" alt="" /></div>
<p>We assume that the system is complex balanced, so that </p>
<p><img src='https://s0.wp.com/latex.php?latex=f_%5Calpha%28m_1%5Cto+m_2%29+%3D+f_%5Calpha%28m_2%5Cto+m_3%29+%3D+f_%5Calpha%28m_3%5Cto+m_1%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha(m_1&#92;to m_2) = f_&#92;alpha(m_2&#92;to m_3) = f_&#92;alpha(m_3&#92;to m_1)' title='f_&#92;alpha(m_1&#92;to m_2) = f_&#92;alpha(m_2&#92;to m_3) = f_&#92;alpha(m_3&#92;to m_1)' class='latex' /></p>
<p>Let us call this nonnegative number <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha.' title='f_&#92;alpha.' class='latex' />  A small calculation employing the chain rule shows that <img src='https://s0.wp.com/latex.php?latex=d+g_%5Calpha%28x%28t%29%29%2Fd+t&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='d g_&#92;alpha(x(t))/d t' title='d g_&#92;alpha(x(t))/d t' class='latex' /> equals <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha' title='f_&#92;alpha' class='latex' /> times</p>
<p><img src='https://s0.wp.com/latex.php?latex=%5Cdisplaystyle%7B+%28x%2F%5Calpha%29%5E%7Bm_1%7D%5C%2C+%5Clog%5Cfrac%7B%28x%2F%5Calpha%29%5E%7Bm_2%7D%7D%7B%28x%2F%5Calpha%29%5E%7Bm_1%7D%7D+%5C%3B+%2B+%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;displaystyle{ (x/&#92;alpha)^{m_1}&#92;, &#92;log&#92;frac{(x/&#92;alpha)^{m_2}}{(x/&#92;alpha)^{m_1}} &#92;; + }' title='&#92;displaystyle{ (x/&#92;alpha)^{m_1}&#92;, &#92;log&#92;frac{(x/&#92;alpha)^{m_2}}{(x/&#92;alpha)^{m_1}} &#92;; + }' class='latex' /></p>
<p><img src='https://s0.wp.com/latex.php?latex=%5Cdisplaystyle%7B+%28x%2F%5Calpha%29%5E%7Bm_2%7D+%5C%2C+%5Clog%5Cfrac%7B%28x%2F%5Calpha%29%5E%7Bm_3%7D%7D%7B%28x%2F%5Calpha%29%5E%7Bm_2%7D%7D+%5C%3B+%2B+%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;displaystyle{ (x/&#92;alpha)^{m_2} &#92;, &#92;log&#92;frac{(x/&#92;alpha)^{m_3}}{(x/&#92;alpha)^{m_2}} &#92;; + }' title='&#92;displaystyle{ (x/&#92;alpha)^{m_2} &#92;, &#92;log&#92;frac{(x/&#92;alpha)^{m_3}}{(x/&#92;alpha)^{m_2}} &#92;; + }' class='latex' /></p>
<p><img src='https://s0.wp.com/latex.php?latex=%5Cdisplaystyle%7B++%28x%2F%5Calpha%29%5E%7Bm_3%7D%5C%2C+%5Clog%5Cfrac%7B%28x%2F%5Calpha%29%5E%7Bm_1%7D%7D%7B%28x%2F%5Calpha%29%5E%7Bm_3%7D%7D+%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='&#92;displaystyle{  (x/&#92;alpha)^{m_3}&#92;, &#92;log&#92;frac{(x/&#92;alpha)^{m_1}}{(x/&#92;alpha)^{m_3}} }' title='&#92;displaystyle{  (x/&#92;alpha)^{m_3}&#92;, &#92;log&#92;frac{(x/&#92;alpha)^{m_1}}{(x/&#92;alpha)^{m_3}} }' class='latex' /> </p>
<p>We need to think about the sign of this quantity:</p>
<p><b>Lemma 3.</b> Let <img src='https://s0.wp.com/latex.php?latex=a%2Cb%2Cc&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='a,b,c' title='a,b,c' class='latex' /> be positive numbers. Then <img src='https://s0.wp.com/latex.php?latex=a+%5Clog+b%2Fa+%2B+b%5Clog+c%2Fb+%2B+c%5Clog+a%2Fc&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='a &#92;log b/a + b&#92;log c/b + c&#92;log a/c' title='a &#92;log b/a + b&#92;log c/b + c&#92;log a/c' class='latex' /> is less than or equal to zero, with equality precisely when <img src='https://s0.wp.com/latex.php?latex=a%3Db%3Dc.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='a=b=c.' title='a=b=c.' class='latex' /></p>
<p>The proof is a direct application of the <a href="http://en.wikipedia.org/wiki/Log_sum_inequality">log sum inequality</a>. In fact, this holds not just for three numbers, but for any finite list of numbers. Indeed, that is precisely how one obtains the proof for cycles of arbitrary length. Even the two-cycle proof is a special case! If you are wondering how the log sum inequality is proved, it is an application of <a href="http://en.wikipedia.org/wiki/Jensen's_inequality">Jensen&#8217;s inequality</a>, that workhorse of convex analysis.</p>
<p>The three-cycle calculation extends to a proof for the theorem <i>so long as there is no directed edge that is shared between two directed cycles</i>. When there are such edges, we need to argue that the flows <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha' title='f_&#92;alpha' class='latex' /> and <img src='https://s0.wp.com/latex.php?latex=f_x&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_x' title='f_x' class='latex' /> can be split between the cycles sharing that edge in a consistent manner, so that the cycles can be analyzed independently. We will need the following simple lemma about conservative flows from graph theory. We will apply this lemma to the flow <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha.' title='f_&#92;alpha.' class='latex' /></p>
<p><b>Lemma 4.</b> Let <img src='https://s0.wp.com/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f' title='f' class='latex' /> be a conservative flow on a graph <img src='https://s0.wp.com/latex.php?latex=G.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='G.' title='G.' class='latex' /> Then there exist directed cycles <img src='https://s0.wp.com/latex.php?latex=C_1%2C+C_2%2C%5Cdots%2C+C_k&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='C_1, C_2,&#92;dots, C_k' title='C_1, C_2,&#92;dots, C_k' class='latex' /> in <img src='https://s0.wp.com/latex.php?latex=G%2C&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='G,' title='G,' class='latex' /> and nonnegative real &#8216;flows&#8217; <img src='https://s0.wp.com/latex.php?latex=f_1%2Cf_2%2C%5Cdots%2Cf_k+%5Cin+%5B0%2C%5Cinfty%5D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_1,f_2,&#92;dots,f_k &#92;in [0,&#92;infty]' title='f_1,f_2,&#92;dots,f_k &#92;in [0,&#92;infty]' class='latex' /> such that for each directed edge <img src='https://s0.wp.com/latex.php?latex=e&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='e' title='e' class='latex' /> in <img src='https://s0.wp.com/latex.php?latex=G%2C&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='G,' title='G,' class='latex' /> the flow <img src='https://s0.wp.com/latex.php?latex=f%28e%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f(e)' title='f(e)' class='latex' /> equals the sum of <img src='https://s0.wp.com/latex.php?latex=f_i&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_i' title='f_i' class='latex' /> over <img src='https://s0.wp.com/latex.php?latex=i&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='i' title='i' class='latex' /> such the cycle <img src='https://s0.wp.com/latex.php?latex=C_i&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='C_i' title='C_i' class='latex' /> contains the edge <img src='https://s0.wp.com/latex.php?latex=e.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='e.' title='e.' class='latex' /></p>
<p>Intuitively, this lemma says that conservative flows come from constant flows on the directed cycles of the graph. How does one show this lemma? I&#8217;m sure there are several proofs, and I hope some of you can share some of the really neat ones with me. The one I employed was algorithmic. The idea is to pick a cycle, any cycle, and subtract the maximum constant flow that this cycle allows, and repeat. This is most easily understood by looking at the example of the figure-eight:</p>
<p><b>The figure-eight.</b>  This reaction network consists of two three-cycles sharing an edge:</p>
<div align="center"><img src="https://i2.wp.com/math.ucr.edu/home/baez/mathematical/gopalkrishnan/figure8.png" alt="" /></div>
<p>Here&#8217;s the proof for Lemma 4. Let <img src='https://s0.wp.com/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f' title='f' class='latex' /> be a conservative flow on this graph. We want to exhibit cycles and flows on this graph according to Lemma 4. We arbitrarily pick <i>any cycle</i> in the graph. For example, in the figure-eight, suppose we pick the cycle <img src='https://s0.wp.com/latex.php?latex=u_0%5Cto+u_1%5Cto+u_2%5Cto+u_0.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='u_0&#92;to u_1&#92;to u_2&#92;to u_0.' title='u_0&#92;to u_1&#92;to u_2&#92;to u_0.' class='latex' /> We pick an edge in this cycle on which the flow is minimum. In this case, <img src='https://s0.wp.com/latex.php?latex=f%28u_0%5Cto+u_1%29+%3D+f%28u_2%5Cto+u_0%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f(u_0&#92;to u_1) = f(u_2&#92;to u_0)' title='f(u_0&#92;to u_1) = f(u_2&#92;to u_0)' class='latex' /> is the minimum.  We define a <b>remainder flow</b> by subtracting from <img src='https://s0.wp.com/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f' title='f' class='latex' /> this constant flow which was restricted to one cycle. So the remainder flow is the same as <img src='https://s0.wp.com/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f' title='f' class='latex' /> on edges that don&#8217;t belong to the picked cycle. For edges that belong to the cycle, the remainder flow is <img src='https://s0.wp.com/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f' title='f' class='latex' /> minus the minimum of <img src='https://s0.wp.com/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f' title='f' class='latex' /> on this cycle. We observe that this remainder flow satisfies the conditions of Lemma 4 on a graph with strictly fewer edges. Continuing in this way, since the lemma is trivially true for the empty graph, we are done by <a href="http://en.wikipedia.org/wiki/Proof_by_infinite_descent">infinite descent</a>.</p>
<p>Now that we know how to split the flow <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha' title='f_&#92;alpha' class='latex' /> across cycles, we can figure out how to split the rates across the different cycles. This will tell us how to split the flow <img src='https://s0.wp.com/latex.php?latex=f_x&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_x' title='f_x' class='latex' /> across cycles. Again, this is best illustrated by an example.</p>
<p><b>The figure-eight.</b>  Again, this reaction network looks like</p>
<div align="center"><img src="https://i2.wp.com/math.ucr.edu/home/baez/mathematical/gopalkrishnan/figure8.png" alt="" /></div>
<p>Suppose as in Lemma 4, we obtain the cycles </p>
<p><img src='https://s0.wp.com/latex.php?latex=C_1+%3D+u_0%5Cto+u_1%5Cto+u_2%5Cto+u_0&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='C_1 = u_0&#92;to u_1&#92;to u_2&#92;to u_0' title='C_1 = u_0&#92;to u_1&#92;to u_2&#92;to u_0' class='latex' /> </p>
<p>with constant flow <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha%5E1&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha^1' title='f_&#92;alpha^1' class='latex' /> </p>
<p>and </p>
<p><img src='https://s0.wp.com/latex.php?latex=C_2+%3D+u_3%5Cto+u_1%5Cto+u_2%5Cto+u_3&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='C_2 = u_3&#92;to u_1&#92;to u_2&#92;to u_3' title='C_2 = u_3&#92;to u_1&#92;to u_2&#92;to u_3' class='latex' /> with constant flow <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha%5E2&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha^2' title='f_&#92;alpha^2' class='latex' /> such that </p>
<p><img src='https://s0.wp.com/latex.php?latex=f_%5Calpha%5E1+%2B+f_%5Calpha%5E2+%3D+f_%5Calpha%28u_1%5Cto+u_2%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha^1 + f_&#92;alpha^2 = f_&#92;alpha(u_1&#92;to u_2)' title='f_&#92;alpha^1 + f_&#92;alpha^2 = f_&#92;alpha(u_1&#92;to u_2)' class='latex' /></p>
<p>Here&#8217;s the picture: </p>
<div align="center"><img src="https://i1.wp.com/math.ucr.edu/home/baez/mathematical/gopalkrishnan/figure8n.png" alt="" /></div>
<p>Then we obtain rates <img src='https://s0.wp.com/latex.php?latex=r%5E1%28u_1%5Cto+u_2%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='r^1(u_1&#92;to u_2)' title='r^1(u_1&#92;to u_2)' class='latex' /> and <img src='https://s0.wp.com/latex.php?latex=r%5E2%28u_1%5Cto+u_2%29&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='r^2(u_1&#92;to u_2)' title='r^2(u_1&#92;to u_2)' class='latex' /> by solving the equations</p>
<p><img src='https://s0.wp.com/latex.php?latex=f%5E1_%5Calpha+%3D+r%5E1%28u_1%5Cto+u_2%29+%5Calpha%5E%7Bu_1%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f^1_&#92;alpha = r^1(u_1&#92;to u_2) &#92;alpha^{u_1}' title='f^1_&#92;alpha = r^1(u_1&#92;to u_2) &#92;alpha^{u_1}' class='latex' /> </p>
<p><img src='https://s0.wp.com/latex.php?latex=f%5E2_%5Calpha+%3D+r%5E2%28u_1%5Cto+u_2%29+%5Calpha%5E%7Bu_2%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f^2_&#92;alpha = r^2(u_1&#92;to u_2) &#92;alpha^{u_2}' title='f^2_&#92;alpha = r^2(u_1&#92;to u_2) &#92;alpha^{u_2}' class='latex' /> </p>
<p>Using these rates, we can define non-constant flows <img src='https://s0.wp.com/latex.php?latex=f%5E1_x&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f^1_x' title='f^1_x' class='latex' /> on <img src='https://s0.wp.com/latex.php?latex=C_1&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='C_1' title='C_1' class='latex' /> and <img src='https://s0.wp.com/latex.php?latex=f%5E2_x&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f^2_x' title='f^2_x' class='latex' /> on <img src='https://s0.wp.com/latex.php?latex=C_2&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='C_2' title='C_2' class='latex' /> by the usual formulas:</p>
<p><img src='https://s0.wp.com/latex.php?latex=f%5E1_x%28u_1%5Cto+u_2%29+%3D+r%5E1%28u_1%5Cto+u_2%29+x%5E%7Bu_1%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f^1_x(u_1&#92;to u_2) = r^1(u_1&#92;to u_2) x^{u_1}' title='f^1_x(u_1&#92;to u_2) = r^1(u_1&#92;to u_2) x^{u_1}' class='latex' /></p>
<p>and similarly for <img src='https://s0.wp.com/latex.php?latex=f%5E2_x.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f^2_x.' title='f^2_x.' class='latex' />  In particular, this gives us</p>
<p><img src='https://s0.wp.com/latex.php?latex=f%5E1_x%28u_1%5Cto+u_2%29%2Ff%5E1_%5Calpha+%3D+%28x%2F%5Calpha%29%5E%7Bu_1%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f^1_x(u_1&#92;to u_2)/f^1_&#92;alpha = (x/&#92;alpha)^{u_1}' title='f^1_x(u_1&#92;to u_2)/f^1_&#92;alpha = (x/&#92;alpha)^{u_1}' class='latex' /></p>
<p>and similarly for <img src='https://s0.wp.com/latex.php?latex=f%5E2_x.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f^2_x.' title='f^2_x.' class='latex' /></p>
<p>Using this, we obtain the proof of the Theorem!  The time derivative of <img src='https://s0.wp.com/latex.php?latex=g_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='g_&#92;alpha' title='g_&#92;alpha' class='latex' /> along a trajectory has a contribution from each cycle <img src='https://s0.wp.com/latex.php?latex=C&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='C' title='C' class='latex' /> as in Lemma 4, where each cycle is treated as a separate system with the new rates <img src='https://s0.wp.com/latex.php?latex=r%5EC%2C&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='r^C,' title='r^C,' class='latex' /> and the new flows <img src='https://s0.wp.com/latex.php?latex=f%5EC_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f^C_&#92;alpha' title='f^C_&#92;alpha' class='latex' /> and <img src='https://s0.wp.com/latex.php?latex=f%5EC_x.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f^C_x.' title='f^C_x.' class='latex' />  So, we&#8217;ve reduced the problem to the case of a cycle, which we&#8217;ve already done.</p>
<p>Let&#8217;s review what happened. The time derivative of the function <img src='https://s0.wp.com/latex.php?latex=g_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='g_&#92;alpha' title='g_&#92;alpha' class='latex' /> has a very nice form, which is linear in the flow <img src='https://s0.wp.com/latex.php?latex=f_x.&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_x.' title='f_x.' class='latex' /> The reaction network can be broken up into cycles. Th e conservative flow <img src='https://s0.wp.com/latex.php?latex=f_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_&#92;alpha' title='f_&#92;alpha' class='latex' /> for a complex balanced system can be split into conservative flows on cycles by Lemma 4. This informs us how to split the non-conservative flow <img src='https://s0.wp.com/latex.php?latex=f_x&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='f_x' title='f_x' class='latex' /> across cycles. By linearity of the time derivative, we can separately treat the case for every cycle. For each cycle, we get an expression to which the log sum inequality applies, giving us the final result that <img src='https://s0.wp.com/latex.php?latex=g_%5Calpha&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='g_&#92;alpha' title='g_&#92;alpha' class='latex' /> decreases along trajectories of the rate equation.</p>
<p>Now that we have a Lyapunov function, we will put it to use to obtain some nice theorems about the dynamics, and finally state the global attractor conjecture. All that and more, in the next blog post!</p>
]]></html><thumbnail_url><![CDATA[https://i1.wp.com/static.panoramio.com/photos/large/19658582.jpg?fit=440%2C330]]></thumbnail_url><thumbnail_height><![CDATA[330]]></thumbnail_height><thumbnail_width><![CDATA[440]]></thumbnail_width></oembed>