lemma
proved
evolve_zero
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Thermodynamics.SecondLaw on GitHub at line 152.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
formal source
149 | n + 1, q => R.step (R.evolve n q)
150
151omit [Nonempty Ω] in
152@[simp] lemma evolve_zero {peq : ProbabilityDistribution Ω}
153 (R : JDescentOperator peq) (q : ProbabilityDistribution Ω) :
154 R.evolve 0 q = q := rfl
155
156omit [Nonempty Ω] in
157@[simp] lemma evolve_succ {peq : ProbabilityDistribution Ω}
158 (R : JDescentOperator peq) (n : ℕ) (q : ProbabilityDistribution Ω) :
159 R.evolve (n + 1) q = R.step (R.evolve n q) := rfl
160
161omit [Nonempty Ω] in
162/-- Equilibrium is a fixed point of the iterated evolution. -/
163theorem evolve_equilibrium_eq {peq : ProbabilityDistribution Ω}
164 (R : JDescentOperator peq) (n : ℕ) :
165 R.evolve n peq = peq := by
166 induction n with
167 | zero => rfl
168 | succ n ih =>
169 simp [evolve_succ, ih, R.fixes_equilibrium]
170
171end JDescentOperator
172
173/-! ## §3. KL is monotone non-increasing along the evolution -/
174
175omit [Nonempty Ω] in
176/-- Single-step KL contraction: `D_KL(qₙ₊₁ ‖ peq) ≤ D_KL(qₙ ‖ peq)`. -/
177theorem kl_step_le {peq : ProbabilityDistribution Ω}
178 (R : JDescentOperator peq) (q₀ : ProbabilityDistribution Ω) (n : ℕ) :
179 kl_divergence (R.evolve (n + 1) q₀).p peq.p ≤
180 kl_divergence (R.evolve n q₀).p peq.p := by
181 rw [JDescentOperator.evolve_succ]
182 exact R.kl_non_increasing _