Samplinglib
Lean gate not recorded for this source state main · 9bb7a7394ab0

Bench / optimisation

sogb-023 · public-dev · editorial and formal status separate

An actual gradient flow: objective decay with the zero-curvature branch

Optimisation · natural-language: L4 / lean: L4 (author-assigned; calibration pending)

Why this difficulty?

Compose genuine gradient/derivative chain rules, a strong-convexity first-order adapter and right-derivative scalar Gronwall on a supplied trajectory. Freeze the later objective gap in the distance estimate, keep endpoint continuity and positive denominators, and separate zero curvature from positive curvature. This is a multi-interface proof, not an assumed decay recurrence.

Editorial review and exact formal-coverage boundary

AI editorial review accepted. This is not canonical theorem publication, full Lean coverage or empirical difficulty calibration.

  • The aligned target certifies only the finite, nonnegative objective-gap inequality at 0<t<=T under the exact supplied hypotheses. The auxiliary monotonicity and distance calculations are internal proof steps, not independently exported existence, distance-decay or gradient-norm theorems.
  • The prose time-zero counterexample and warnings about totalized APIs, missing Riemannian/Wasserstein adapters, and the distinction between supplied and constructed flow/minimizer are not additional formal conclusions. No flow existence/uniqueness, discrete optimization complexity, sampling convergence, wider chapter completion or source-provenance theorem is established by this Bench review.

Content-bound review status and evidence hashes · Independent reports and frozen inputs. Historical rejected wording is audit material, not training gold.

Assumptions and conventions

  • E is a complete real inner-product space. \(f:E\to \mathbb{R}\) is differentiable everywhere and \(α\)-strongly convex on E for \(α\ge 0\), in the chord convention \[f((1-s)x+sy)\le(1-s)f(x)+sf(y)-\frac\alpha2s(1-s)\|y-x\|^2\qquad(0\le s\le1).\] The corresponding first-order inequality is a derived adapter, not an extra premise. A global minimizer z is supplied, not constructed.
  • \(T\ge 0\) and \(X:\mathbb{R}\to E\) is continuous on [0,T]. For every u∈[0,T), X has the genuine derivative within the forward ray [u,∞) at u equal to \(-\nabla f(X(u))\). This is the actual trajectory/regularity premise; a scalar gap recurrence is not given.
  • The observation t lies in (0,T]. Gradient notation is the Hilbert/Riesz gradient supplied by differentiability, not an arbitrary value of a totalized API. If \(T=0\) there is no such observation.

Natural-language question

Starting from the actual flow, prove the nonnegative objective-gap estimate \[0\le f(X(t))-f(z)\le\begin{cases}\|X(0)-z\|^2/(2t),&\alpha=0,\\\alpha\|X(0)-z\|^2/[2(e^{\alpha t}-1)],&\alpha>0.\end{cases}\] Derive objective monotonicity and the distance inequality needed for the fixed later time t rather than assuming them. Explain the time/curvature/domain conditions, why the theorem constructs no flow, and why directly substituting \(t=0\) in totalized division is invalid; give a valid positive-initial-gap example for that last point.

Reference mathematical proof
  1. The differentiability and actual one-sided flow law give, for \(u<T\), \[\frac{d}{du^+}f(X(u))=\langle\nabla f(X(u)),-\nabla f(X(u))\rangle=-\|\nabla f(X(u))\|^2\le0.\] Continuity on closed subintervals and the right-derivative comparison theorem imply f∘X is nonincreasing on [0,T]. Thus for \(0\le u\le t\), \(f(X(u))-f(z)\ge f(X(t))-f(z)\). The source does not assume this monotonicity as an input.

  2. Write \(D(u)=\|X(u)-z\|^2\) and \(h_t=f(X(t))-f(z)\ge0\), the latter by global minimality of z. The norm-square derivative and first-order strong-convexity bound give \[D'(u^+)=-2\langle\nabla f(X(u)),X(u)-z\rangle\le-\alpha D(u)-2(f(X(u))-f(z))\le-\alpha D(u)-2h_t.\] The last step freezes the objective gap at the later observation time, using the proved monotonicity and the correct negative sign.

  3. On the fixed interval [0,t], scalar Gronwall/comparison with constant forcing \(-2hₜ\) gives for \(α=0\) \[D(t)\le D(0)-2t h_t.\] Since \(D(t)\ge 0\) and \(t>0\), \(h_t\le D(0)/(2t)\). Division by 2t requires the positive observation time, not just \(T\ge 0\).

  4. For \(α>0\), the same comparison gives \[D(t)\le e^{-\alpha t}D(0)-\frac{2h_t}{\alpha}(1-e^{-\alpha t}).\] Multiply its nonnegative upper bound by \(αe^{αt}\)>0 and rearrange: \[2h_t(e^{\alpha t}-1)\le\alpha D(0).\] Because \(αt>0\), \(e^{αt}\)\(-1>0\), and division yields the exact stated coefficient. No extra smoothness, Lipschitz-gradient constant or finite dimension is introduced.

  5. The derivative premise is required only before T; continuity at T supports the closed-endpoint comparison and permits observation \(t=T\). The supplied minimizer and trajectory are never obtained from the rate estimate. If \(T=0\) the observation set is empty. At \(α=0\) the zero-curvature comparison is a separate branch, not evaluating α/(\(e^{αt}\)−1) as 0/0.

  6. For failure at time zero take \(E=\mathbb{R}\), \(f(x)=x^{2}/2\), \(z=0\), \(α=1\) and X(u)=\(e^{-u}\) on [0,1]. This satisfies the actual gradient-flow equation, with \[\begin{gathered}f(X(0))-f(0)=\tfrac12>0,\\ D(0)=1.\end{gathered}\] Direct \(t=0\) substitution in a totalized denominator would return zero and falsely assert a zero initial gap. This refutes only the forbidden endpoint substitution. The positive-time theorem is valid. Transferring it to a curved manifold or a law-valued flow requires new geometric/chain-rule/distance adapters; these data are not automatically present.

How the Lean proof follows these steps

The target is the source's actual trajectory theorem. It derives the objective's one-sided derivative by composing the supplied HasFDerivAt/gradient with hflow, proves monotonicity through a zero-forcing Gronwall comparison, and computes the squared-distance derivative. It calls StrongConvexFirstOrder's existing adapter and a second comparison with \(K=-α\) and \(ε=-2\) times the frozen later gap. The final branches use nonnegative distance, positive t and, when \(α>0\), a positive exponential denominator. The target module is not imported; no decay lemma is supplied as a substitute for the trajectory. The time-zero example and geometric-transfer warning explain the conclusion's boundary, not additional Lean conclusions.

/- SamplingOptimisationGeometryBench public-dev reference.
   Reuses the existing project proof; retain LICENSE and NOTICE. -/
import AutoSamplingTheory.TechnicalLemmas.Analysis.StrongConvexFirstOrder
import Mathlib.Analysis.InnerProductSpace.Calculus
import Mathlib.Analysis.ODE.Gronwall

open Set
open scoped RealInnerProductSpace
open AutoSamplingTheory.TechnicalLemmas.Analysis
variable {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [CompleteSpace E]

example {f : E → ℝ} {X : ℝ → E} {z : E} {α T : ℝ}
    (hα : 0 ≤ α) (_hT : 0 ≤ T) (hf : Differentiable ℝ f)
    (hsc : StrongConvexOn univ α f) (hz : IsMinOn f univ z)
    (hX : ContinuousOn X (Icc 0 T))
    (hflow : ∀ t ∈ Ico 0 T, HasDerivWithinAt X (-gradient f (X t)) (Ici t) t) :
    ∀ t ∈ Ioc 0 T, 0 ≤ f (X t) - f z ∧
      f (X t) - f z ≤ if α = 0 then ‖X 0 - z‖ ^ 2 / (2 * t)
        else α / (2 * (Real.exp (α * t) - 1)) * ‖X 0 - z‖ ^ 2 := by
  have hd (u : ℝ) (hu : u ∈ Ico 0 T) :
      HasDerivWithinAt (fun s => f (X s)) (-‖gradient f (X u)‖ ^ 2) (Ici u) u := by
    have hgrad : HasFDerivAt f (InnerProductSpace.toDual ℝ E (gradient f (X u))) (X u) :=
      (hf (X u)).hasGradientAt
    simpa only [Function.comp_def, InnerProductSpace.toDual_apply_apply,
      inner_neg_right, real_inner_self_eq_norm_sq] using
      hgrad.comp_hasDerivWithinAt u (hflow u hu)
  have hmono : AntitoneOn (fun s => f (X s)) (Icc 0 T) := by
    intro a ha b hb hab
    have hc := (hf.continuous.comp_continuousOn hX).mono
      (show Icc a b ⊆ Icc 0 T from fun u hu => ⟨ha.1.trans hu.1, hu.2.trans hb.2⟩)
    have hg := le_gronwallBound_of_liminf_deriv_right_le
      (f' := fun u => -‖gradient f (X u)‖ ^ 2) (δ := f (X a)) (K := 0) (ε := 0) hc
      (fun u hu r hr => by
        simpa [slope] using (hd u ⟨ha.1.trans hu.1, hu.2.trans_le hb.2⟩).liminf_right_slope_le hr)
      le_rfl (fun u _ => by nlinarith [sq_nonneg ‖gradient f (X u)‖]) b ⟨hab, le_rfl⟩
    simpa [gronwallBound_K0] using hg
  have hdist (u : ℝ) (hu : u ∈ Ico 0 T) :
      HasDerivWithinAt (fun s => ‖X s - z‖ ^ 2)
        (-2 * inner ℝ (gradient f (X u)) (X u - z)) (Ici u) u := by
    have h := ((hflow u hu).sub_const z).norm_sq
    simp only [inner_neg_right, real_inner_comm] at h
    convert h using 1; ring
  intro t ht
  refine ⟨sub_nonneg.mpr (hz (mem_univ _)), ?_⟩
  have hbound := le_gronwallBound_of_liminf_deriv_right_le
    (f := fun s => ‖X s - z‖ ^ 2)
    (f' := fun u => -2 * inner ℝ (gradient f (X u)) (X u - z))
    (δ := ‖X 0 - z‖ ^ 2) (K := -α) (ε := -2 * (f (X t) - f z))
    (((hX.sub continuousOn_const).norm.pow 2).mono
      (show Icc 0 t ⊆ Icc 0 T from fun u hu => ⟨hu.1, hu.2.trans ht.2⟩))
    (fun u hu r hr => by
      simpa [slope] using (hdist u ⟨hu.1, hu.2.trans_le ht.2⟩).liminf_right_slope_le hr)
    le_rfl (fun u hu => by
      have hs := StrongConvexFirstOrder.firstOrder_lower_bound_of_strongConvexOn
        hsc (fun x _ => (hf x).hasGradientAt) (mem_univ (X u)) (mem_univ z)
      rw [show z - X u = -(X u - z) by abel, inner_neg_right, norm_neg] at hs
      have hm := hmono ⟨hu.1, hu.2.le.trans ht.2⟩ ⟨ht.1.le, ht.2⟩ hu.2.le
      nlinarith) t ⟨ht.1.le, le_rfl⟩
  have hn := (sq_nonneg ‖X t - z‖).trans hbound
  by_cases ha : α = 0
  · simp only [ha, neg_zero, gronwallBound_K0, sub_zero] at hn ⊢
    apply (le_div_iff₀ (mul_pos (by norm_num) ht.1)).mpr
    nlinarith
  · rw [if_neg ha]
    have hap : 0 < α := lt_of_le_of_ne hα (Ne.symm ha)
    rw [gronwallBound_of_K_ne_0 (neg_ne_zero.mpr ha), sub_zero] at hn
    have hmul := mul_nonneg hn hap.le
    have heq : (‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
        (-2 * (f (X t) - f z)) / -α * (Real.exp (-α * t) - 1)) * α =
        α * ‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
          2 * (f (X t) - f z) * (Real.exp (-α * t) - 1) := by
      field_simp
    rw [heq] at hmul
    have he : Real.exp (-α * t) * Real.exp (α * t) = 1 := by
      rw [← Real.exp_add, show -α * t + α * t = 0 by ring, Real.exp_zero]
    have hp := mul_nonneg hmul (Real.exp_pos (α * t)).le
    have hcancel : (α * ‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
        2 * (f (X t) - f z) * (Real.exp (-α * t) - 1)) * Real.exp (α * t) =
        α * ‖X 0 - z‖ ^ 2 - 2 * (f (X t) - f z) * (Real.exp (α * t) - 1) := by
      calc
        _ = α * ‖X 0 - z‖ ^ 2 * (Real.exp (-α * t) * Real.exp (α * t)) +
          2 * (f (X t) - f z) * (Real.exp (-α * t) * Real.exp (α * t)) -
          2 * (f (X t) - f z) * Real.exp (α * t) := by ring
        _ = _ := by rw [he]; ring
    rw [hcancel] at hp
    rw [div_mul_eq_mul_div]
    apply (le_div_iff₀ (mul_pos (by norm_num) (sub_pos.mpr (Real.one_lt_exp_iff.mpr
      (mul_pos hap ht.1))))).mpr
    nlinarith

Download runnable reference

Assessment rubric · 4 points
  1. Derives the true objective derivative and monotonicity from differentiability, forward flow and interval continuity, rather than assuming an energy recurrence. (1 point)
  2. Derives the squared-distance inequality via first-order strong convexity and correctly freezes the later nonnegative objective gap with the proper sign. (1 point)
  3. Solves the comparison in both curvature branches and tracks the exact coefficient, positive observation time and denominator signs. (1 point)
  4. Explains closed-endpoint versus forward-derivative domains, supplied rather than constructed flow/minimizer and missing geometric-transfer adapters; supplies any valid positive-initial-gap gradient-flow example refuting totalized \(t=0\) substitution. (1 point)

Lean question

Keep the target and context fixed; replace the comment slot with your proof. Ancestor libraries are allowed, but the target module is not imported directly.

Show fixed Lean task
/- SamplingOptimisationGeometryBench public-dev reference.
   Reuses the existing project proof; retain LICENSE and NOTICE. -/
import AutoSamplingTheory.TechnicalLemmas.Analysis.StrongConvexFirstOrder
import Mathlib.Analysis.InnerProductSpace.Calculus
import Mathlib.Analysis.ODE.Gronwall

open Set
open scoped RealInnerProductSpace
open AutoSamplingTheory.TechnicalLemmas.Analysis
variable {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [CompleteSpace E]

example {f : E → ℝ} {X : ℝ → E} {z : E} {α T : ℝ}
    (hα : 0 ≤ α) (_hT : 0 ≤ T) (hf : Differentiable ℝ f)
    (hsc : StrongConvexOn univ α f) (hz : IsMinOn f univ z)
    (hX : ContinuousOn X (Icc 0 T))
    (hflow : ∀ t ∈ Ico 0 T, HasDerivWithinAt X (-gradient f (X t)) (Ici t) t) :
    ∀ t ∈ Ioc 0 T, 0 ≤ f (X t) - f z ∧
      f (X t) - f z ≤ if α = 0 then ‖X 0 - z‖ ^ 2 / (2 * t)
        else α / (2 * (Real.exp (α * t) - 1)) * ‖X 0 - z‖ ^ 2 := by
  -- Replace this comment with your proof.

Download task template

Reference Lean and explanation

The target is the source's actual trajectory theorem. It derives the objective's one-sided derivative by composing the supplied HasFDerivAt/gradient with hflow, proves monotonicity through a zero-forcing Gronwall comparison, and computes the squared-distance derivative. It calls StrongConvexFirstOrder's existing adapter and a second comparison with \(K=-α\) and \(ε=-2\) times the frozen later gap. The final branches use nonnegative distance, positive t and, when \(α>0\), a positive exponential denominator. The target module is not imported; no decay lemma is supplied as a substitute for the trajectory. The time-zero example and geometric-transfer warning explain the conclusion's boundary, not additional Lean conclusions.

/- SamplingOptimisationGeometryBench public-dev reference.
   Reuses the existing project proof; retain LICENSE and NOTICE. -/
import AutoSamplingTheory.TechnicalLemmas.Analysis.StrongConvexFirstOrder
import Mathlib.Analysis.InnerProductSpace.Calculus
import Mathlib.Analysis.ODE.Gronwall

open Set
open scoped RealInnerProductSpace
open AutoSamplingTheory.TechnicalLemmas.Analysis
variable {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [CompleteSpace E]

example {f : E → ℝ} {X : ℝ → E} {z : E} {α T : ℝ}
    (hα : 0 ≤ α) (_hT : 0 ≤ T) (hf : Differentiable ℝ f)
    (hsc : StrongConvexOn univ α f) (hz : IsMinOn f univ z)
    (hX : ContinuousOn X (Icc 0 T))
    (hflow : ∀ t ∈ Ico 0 T, HasDerivWithinAt X (-gradient f (X t)) (Ici t) t) :
    ∀ t ∈ Ioc 0 T, 0 ≤ f (X t) - f z ∧
      f (X t) - f z ≤ if α = 0 then ‖X 0 - z‖ ^ 2 / (2 * t)
        else α / (2 * (Real.exp (α * t) - 1)) * ‖X 0 - z‖ ^ 2 := by
  have hd (u : ℝ) (hu : u ∈ Ico 0 T) :
      HasDerivWithinAt (fun s => f (X s)) (-‖gradient f (X u)‖ ^ 2) (Ici u) u := by
    have hgrad : HasFDerivAt f (InnerProductSpace.toDual ℝ E (gradient f (X u))) (X u) :=
      (hf (X u)).hasGradientAt
    simpa only [Function.comp_def, InnerProductSpace.toDual_apply_apply,
      inner_neg_right, real_inner_self_eq_norm_sq] using
      hgrad.comp_hasDerivWithinAt u (hflow u hu)
  have hmono : AntitoneOn (fun s => f (X s)) (Icc 0 T) := by
    intro a ha b hb hab
    have hc := (hf.continuous.comp_continuousOn hX).mono
      (show Icc a b ⊆ Icc 0 T from fun u hu => ⟨ha.1.trans hu.1, hu.2.trans hb.2⟩)
    have hg := le_gronwallBound_of_liminf_deriv_right_le
      (f' := fun u => -‖gradient f (X u)‖ ^ 2) (δ := f (X a)) (K := 0) (ε := 0) hc
      (fun u hu r hr => by
        simpa [slope] using (hd u ⟨ha.1.trans hu.1, hu.2.trans_le hb.2⟩).liminf_right_slope_le hr)
      le_rfl (fun u _ => by nlinarith [sq_nonneg ‖gradient f (X u)‖]) b ⟨hab, le_rfl⟩
    simpa [gronwallBound_K0] using hg
  have hdist (u : ℝ) (hu : u ∈ Ico 0 T) :
      HasDerivWithinAt (fun s => ‖X s - z‖ ^ 2)
        (-2 * inner ℝ (gradient f (X u)) (X u - z)) (Ici u) u := by
    have h := ((hflow u hu).sub_const z).norm_sq
    simp only [inner_neg_right, real_inner_comm] at h
    convert h using 1; ring
  intro t ht
  refine ⟨sub_nonneg.mpr (hz (mem_univ _)), ?_⟩
  have hbound := le_gronwallBound_of_liminf_deriv_right_le
    (f := fun s => ‖X s - z‖ ^ 2)
    (f' := fun u => -2 * inner ℝ (gradient f (X u)) (X u - z))
    (δ := ‖X 0 - z‖ ^ 2) (K := -α) (ε := -2 * (f (X t) - f z))
    (((hX.sub continuousOn_const).norm.pow 2).mono
      (show Icc 0 t ⊆ Icc 0 T from fun u hu => ⟨hu.1, hu.2.trans ht.2⟩))
    (fun u hu r hr => by
      simpa [slope] using (hdist u ⟨hu.1, hu.2.trans_le ht.2⟩).liminf_right_slope_le hr)
    le_rfl (fun u hu => by
      have hs := StrongConvexFirstOrder.firstOrder_lower_bound_of_strongConvexOn
        hsc (fun x _ => (hf x).hasGradientAt) (mem_univ (X u)) (mem_univ z)
      rw [show z - X u = -(X u - z) by abel, inner_neg_right, norm_neg] at hs
      have hm := hmono ⟨hu.1, hu.2.le.trans ht.2⟩ ⟨ht.1.le, ht.2⟩ hu.2.le
      nlinarith) t ⟨ht.1.le, le_rfl⟩
  have hn := (sq_nonneg ‖X t - z‖).trans hbound
  by_cases ha : α = 0
  · simp only [ha, neg_zero, gronwallBound_K0, sub_zero] at hn ⊢
    apply (le_div_iff₀ (mul_pos (by norm_num) ht.1)).mpr
    nlinarith
  · rw [if_neg ha]
    have hap : 0 < α := lt_of_le_of_ne hα (Ne.symm ha)
    rw [gronwallBound_of_K_ne_0 (neg_ne_zero.mpr ha), sub_zero] at hn
    have hmul := mul_nonneg hn hap.le
    have heq : (‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
        (-2 * (f (X t) - f z)) / -α * (Real.exp (-α * t) - 1)) * α =
        α * ‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
          2 * (f (X t) - f z) * (Real.exp (-α * t) - 1) := by
      field_simp
    rw [heq] at hmul
    have he : Real.exp (-α * t) * Real.exp (α * t) = 1 := by
      rw [← Real.exp_add, show -α * t + α * t = 0 by ring, Real.exp_zero]
    have hp := mul_nonneg hmul (Real.exp_pos (α * t)).le
    have hcancel : (α * ‖X 0 - z‖ ^ 2 * Real.exp (-α * t) +
        2 * (f (X t) - f z) * (Real.exp (-α * t) - 1)) * Real.exp (α * t) =
        α * ‖X 0 - z‖ ^ 2 - 2 * (f (X t) - f z) * (Real.exp (α * t) - 1) := by
      calc
        _ = α * ‖X 0 - z‖ ^ 2 * (Real.exp (-α * t) * Real.exp (α * t)) +
          2 * (f (X t) - f z) * (Real.exp (-α * t) * Real.exp (α * t)) -
          2 * (f (X t) - f z) * Real.exp (α * t) := by ring
        _ = _ := by rw [he]; ring
    rw [hcancel] at hp
    rw [div_mul_eq_mul_div]
    apply (le_div_iff₀ (mul_pos (by norm_num) (sub_pos.mpr (Real.one_lt_exp_iff.mpr
      (mul_pos hap ht.1))))).mpr
    nlinarith

Download runnable reference

No current trusted-reference compiler receipt recorded in this build.

Structural questions about this proof context (not equivalent mathematical tasks): Which convex-analysis branches reach the curve limit? · Combine a proof path with an exact statement profile

What this does—and does not—verify

The Lean conclusion is the nonnegative finite objective-gap bound at positive observation time for a supplied complete-space trajectory and minimizer. It is not flow existence/uniqueness, discrete gradient-descent complexity, stochastic sampling convergence, Riemannian or Wasserstein gradient flow, or a formalization of the explanatory time-zero counterexample. \(T\ge 0\) is retained from the actual statement; no necessity/minimality claim is made for every source/API premise. This exercise shares a public family with the first-order limiting task, not an independent private split.

Existing library mathematics reused; no new mathematical leaf or paper-completion credit. The editorial panel records the exact current review scope and remaining unformalized explanation.

Sources, graph location and dependencies

Original QA over the existing ASTIS-owned GradientFlowValue.value_le proof and its real first-order/Gronwall adapters. The module cites Chewi arXiv:2605.07006v1, Theorem 2.4; this is ASTIS-authored exposition of the exact local theorem, not copied book prose or a claim that its wider chapter is complete. StrongConvexFirstOrder records its Optlib mathematical provenance; it remains an installed dependency rather than a copied transitive source tree. No external dataset or restricted source is exported.

Exact local source and full context · Locate the existing Lean declaration

AutoSamplingTheory.TechnicalLemmas.Analysis.GradientFlowValue.value_le

ASTIS definitions / proof calls

  • AutoSamplingTheory.TechnicalLemmas.Analysis.StrongConvexFirstOrder.firstOrder_lower_bound_of_strongConvexOn

Mathlib facts / definitions

  • DifferentiableAt.hasGradientAt
  • HasFDerivAt.comp_hasDerivWithinAt
  • HasDerivWithinAt.norm_sq
  • le_gronwallBound_of_liminf_deriv_right_le
  • gronwallBound_K0
  • gronwallBound_of_K_ne_0
  • Real.one_lt_exp_iff

Binding SHA-256: 4a0607efb0c7bf22a09cc2d1ced0f8033582c57fd04e0225279f2e0782d169dc