|
| 1 | +/- |
| 2 | +No non-constant positive periodic orbit for weakly reversible, deficiency-zero |
| 3 | +mass-action networks. |
| 4 | +
|
| 5 | +The relative entropy `relEntropy xstar` is a strict Lyapunov function: it is nonincreasing |
| 6 | +along every positive trajectory and its dissipation vanishes only at complex-balanced points. |
| 7 | +A positive periodic orbit returns the relative entropy to its starting value each period, so |
| 8 | +along the orbit the relative entropy is both nonincreasing and periodic, hence constant; its |
| 9 | +derivative, the dissipation, is therefore identically zero, so every point of the orbit is |
| 10 | +complex-balanced. Deficiency-zero per-class uniqueness then forces the orbit to be a single |
| 11 | +point. Consequently a weakly reversible deficiency-zero network sustains no oscillation, for |
| 12 | +every choice of rate constants. |
| 13 | +-/ |
| 14 | +import CRNT.Theorems.DeficiencyZero.AsymptoticStability |
| 15 | +import CRNT.Theorems.DeficiencyZero.Existence |
| 16 | + |
| 17 | +open scoped BigOperators |
| 18 | + |
| 19 | +namespace CRNT |
| 20 | + |
| 21 | +/-- A real function that is antitone and periodic with a positive period is constant. -/ |
| 22 | +theorem eq_of_antitone_periodic {g : ℝ → ℝ} {T : ℝ} (hT : 0 < T) |
| 23 | + (hanti : Antitone g) (hper : Function.Periodic g T) : ∀ x y, g x = g y := by |
| 24 | + have hiter : ∀ (n : ℕ) (x : ℝ), g (x + n * T) = g x := by |
| 25 | + intro n |
| 26 | + induction n with |
| 27 | + | zero => intro x; simp |
| 28 | + | succ k ih => |
| 29 | + intro x |
| 30 | + have hstep : g (x + ((k : ℝ) + 1) * T) = g x := by |
| 31 | + have harg : x + ((k : ℝ) + 1) * T = (x + (k : ℝ) * T) + T := by ring |
| 32 | + rw [harg, hper, ih x] |
| 33 | + simpa [Nat.cast_succ] using hstep |
| 34 | + have key : ∀ x y : ℝ, g x ≤ g y := by |
| 35 | + intro x y |
| 36 | + obtain ⟨n, hn⟩ := Archimedean.arch (y - x) hT |
| 37 | + have hnn : y - x ≤ (n : ℝ) * T := by simpa [nsmul_eq_mul] using hn |
| 38 | + have hle : y ≤ x + (n : ℝ) * T := by linarith |
| 39 | + calc g x = g (x + (n : ℝ) * T) := (hiter n x).symm |
| 40 | + _ ≤ g y := hanti hle |
| 41 | + intro x y |
| 42 | + exact le_antisymm (key x y) (key y x) |
| 43 | + |
| 44 | +namespace Network |
| 45 | + |
| 46 | +variable {S : Type} [DecidableEq S] [Fintype S] |
| 47 | + |
| 48 | +/-- **No non-constant positive periodic orbit.** For a weakly reversible, deficiency-zero |
| 49 | +mass-action network, every positive periodic solution of the mass-action ODE is constant, for |
| 50 | +every choice of rate constants. This is the exclusion of sustained oscillation from the |
| 51 | +deficiency-zero class. -/ |
| 52 | +theorem eq_of_periodic_solution |
| 53 | + (N : Network S) (hwr : N.WeaklyReversible) (hδ : N.DeficiencyZero) (κ : N.RateConstants) |
| 54 | + {γ : ℝ → Concentration S} {T : ℝ} (hT : 0 < T) |
| 55 | + (hpos : ∀ t, (γ t).Positive) |
| 56 | + (hsol : ∀ t s, HasDerivAt (fun τ => γ τ s) (N.massActionVectorField κ (γ t) s) t) |
| 57 | + (hper : Function.Periodic γ T) : |
| 58 | + ∀ t, γ t = γ 0 := by |
| 59 | + -- A positive complex-balanced reference exists from weak reversibility and δ = 0. |
| 60 | + obtain ⟨xstar, hxs, hcb⟩ := N.exists_isComplexBalanced hwr hδ κ |
| 61 | + -- The relative entropy along the orbit is antitone (Lyapunov descent) and periodic, hence |
| 62 | + -- constant. |
| 63 | + have hanti : Antitone (fun t => relEntropy xstar (γ t)) := |
| 64 | + N.relEntropy_antitone_along_solution κ hxs hcb hpos hsol |
| 65 | + have hgper : Function.Periodic (fun t => relEntropy xstar (γ t)) T := by |
| 66 | + intro t |
| 67 | + show relEntropy xstar (γ (t + T)) = relEntropy xstar (γ t) |
| 68 | + rw [hper t] |
| 69 | + have hgconst : ∀ a b, relEntropy xstar (γ a) = relEntropy xstar (γ b) := |
| 70 | + eq_of_antitone_periodic hT hanti hgper |
| 71 | + -- Whole-vector form of the solution, for the compatibility-class lemma. |
| 72 | + have hsolwv : ∀ τ, HasDerivAt γ (N.massActionVectorField κ (γ τ)) τ := |
| 73 | + fun τ => hasDerivAt_pi.mpr (fun s => hsol τ s) |
| 74 | + -- Every point of the orbit is complex-balanced: the relative entropy is locally constant, so |
| 75 | + -- its derivative (the dissipation) vanishes, and vanishing dissipation is complex balance. |
| 76 | + have hcbt : ∀ t, N.IsComplexBalanced κ (γ t) := by |
| 77 | + intro t₀ |
| 78 | + have hchain := relEntropy_hasDerivAt hxs (hpos t₀) (fun s => hsol t₀ s) |
| 79 | + have hd0 : HasDerivAt (fun τ => relEntropy xstar (γ τ)) 0 t₀ := by |
| 80 | + have heq : (fun τ => relEntropy xstar (γ τ)) = fun _ => relEntropy xstar (γ t₀) := by |
| 81 | + funext u; exact hgconst u t₀ |
| 82 | + rw [heq]; exact hasDerivAt_const t₀ _ |
| 83 | + have hdiss : (∑ s, (Real.log (γ t₀ s) - Real.log (xstar s)) |
| 84 | + * N.massActionVectorField κ (γ t₀) s) = 0 := hchain.unique hd0 |
| 85 | + exact N.complexBalanced_of_dissipation_eq_zero κ (hpos t₀) hxs hcb hdiss |
| 86 | + -- Every point of the orbit lies in γ 0's positive compatibility class. |
| 87 | + have hmem : ∀ t, γ t ∈ N.positiveCompatibilityClass (γ 0) := by |
| 88 | + intro t |
| 89 | + refine ⟨?_, hpos t⟩ |
| 90 | + show γ t - γ 0 ∈ N.stoichSubspace |
| 91 | + rcases le_total 0 t with h | h |
| 92 | + · have hsol0t : ∀ τ ∈ Set.Icc (0 : ℝ) t, |
| 93 | + HasDerivAt γ (N.massActionVectorField κ (γ τ)) τ := fun τ _ => hsolwv τ |
| 94 | + exact N.sub_mem_stoichSubspace_of_solution κ h hsol0t |
| 95 | + · have hsolt0 : ∀ τ ∈ Set.Icc t (0 : ℝ), |
| 96 | + HasDerivAt γ (N.massActionVectorField κ (γ τ)) τ := fun τ _ => hsolwv τ |
| 97 | + have h2 := N.sub_mem_stoichSubspace_of_solution κ h hsolt0 |
| 98 | + simpa [neg_sub] using N.stoichSubspace.neg_mem h2 |
| 99 | + -- Two complex-balanced points of one positive class are equal (deficiency-zero uniqueness). |
| 100 | + intro t |
| 101 | + exact N.isComplexBalanced_unique_in_positiveClass hwr κ (hmem t) (hmem 0) (hcbt t) (hcbt 0) |
| 102 | + |
| 103 | +end Network |
| 104 | +end CRNT |
0 commit comments