GaussianAnalysisRocq library documentation
Main resultsGlossary
On this page

A scalar variational problem for a law on the line

GaussianAnalysis.probability.variationallibrary/probability/variational.v1,764 lines80 lemmas and theorems, 11 definitionssource
Imports 0 library modules and 22 external

External: HB.structures, mathcomp.classical.all_ssreflect_compat, mathcomp.algebra.algebraic_hierarchy.ssralg, mathcomp.algebra.numeric_hierarchy.ssrnum, mathcomp.algebra.interval, mathcomp.algebra.arithmetic_tactic, mathcomp.algebra.ring_tactic, mathcomp.algebra.field_tactic, mathcomp.classical.boolp, mathcomp.classical.classical_sets, mathcomp.classical.functions, mathcomp.reals.reals, mathcomp.analysis.ereal, mathcomp.analysis.topology_theory.topology, mathcomp.analysis.normedtype_theory.normedtype, mathcomp.analysis.sequences, mathcomp.analysis.measure_theory.measure, mathcomp.analysis.lebesgue_measure, mathcomp.analysis.measurable_realfun, mathcomp.analysis.numfun, mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral, mathcomp.analysis.probability_theory.probability

Imported by 1
Required by 13 files of the paper proofs

For a law mu on the line with a finite second moment, the upper partial moments m(w) = E (X - w)_+ and s(w) = E (X - w)_+^2 solve the variational problem of Koehler and Sohn (arXiv 2608.27372, Lemmas 5.7 and 5.8): for c > -1 and z real, the equation w + z = c m(w) has a unique solution w, and

sup { (E (X + z) f(X))_+^2 / (E f(X)^2 + c (E f(X))^2) :
      f >= 0, E f(X)^2 < oo, E f(X) > 0 }  =  s(w) + c m(w)^2,

attained at f(x) = (x - w)_+ when the right-hand side is positive.

Main results:

Laws on the line are probabilities on measurableTypeR R, as in fourier/charfun.v. A finite second moment is the integrability of x^2.

upper_moment mu k w\int[mu]_x ((x - w)_+)^k, the upper partial moment of order k at w: m(w) for k = 1, s(w) for k = 2
upper_energy mu c ws(w) + c m(w)^2
upper_cutoff mu c zsup {w | w + z <= c m(w)}, the solution of w + z = c m(w) when c > -1
upper_value mu c zupper_energy mu c (upper_cutoff mu c z), the value of the variational problem
upper_admissible muthe measurable f >= 0 with f^2 integrable and E f > 0
upper_ratio mu c z f(E (X + z) f(X))_+^2 / (E f(X)^2 + c (E f(X))^2)
empirical sthe average of the Dirac masses at the elements of s
empirical_fun gempirical [seq g i | i <- enum 'I_d]
clip_energy mu C ts(-t) + s(C t)
clip_value mu Cthe infimum of clip_energy mu C t over t >= 0

Main results

ResultsStatement
For a law mu on the line with a finite second moment, the upper partial moments m(w) = E (X - w)_+ and s(w) = E (X - w)_+^2: m is nonincreasing and 1-Lipschitz, E X - w <= m(w) <= E X^2 / (4 w) for w > 0, m(w) > 0 if mu(]b, +oo[) > 0 for some b > w, and |s(w + h) - s(w) + 2 h m(w)| <= h^2, so s' = -2 m.
For c > -1, the equation w + z = c m(w) has exactly one solution, upper_cutoff mu c z = sup {w | w + z <= c m(w)}, and the half-line {w | w + z <= c m(w)} is ]-oo, upper_cutoff mu c z] (Koehler-Sohn, Lemma 5.7).
For c > -1, the energy E = s + c m^2 satisfies E(w1) - E(w2) >= 2 min(1, 1 + c) m(w2) (w2 - w1) for w1 <= w2: it is strictly decreasing where m > 0; |E(a) - E(b)| <= 2 (1 + |c|) m(a) (b - a) for a <= b, so E is continuous; and E(w) >= (1 + c) m(w)^2 for every c.
For a law with a finite second moment, clip_energy mu C t = s(-t) + s(C t), which for a symmetric law is the mean of (t - X)_+^2 + (X - C t)_+^2, the mean squared distance from X to [t, C t] when t <= C t (for example C >= 1 and t >= 0), and its infimum clip_value mu C over t >= 0. Its derivative in t is 2 (m(-t) - C m(C t)) (a Taylor bound with remainder (1 + C^2) h^2), so a t0 >= 0 where the derivative is <= 0 before and >= 0 after is a minimum. It is nonincreasing in C, with 0 <= clip_energy C t - clip_energy C' t <= (C' - C) t (m(C t) + m(C' t)) for C <= C'. The tool: a function with |F(t + h) - F(t) - h g(t)| <= K h^2 for h >= 0 is nonincreasing where g <= 0 and nondecreasing where g >= 0.
Lemma 5.7 of Koehler and Sohn: for c > -1 and w the cutoff, the supremum of (E (X + z) f(X))_+^2 / (E f(X)^2 + c (E f(X))^2) over measurable f >= 0 with E f^2 < oo and E f > 0 is s(w) + c m(w)^2, attained at f(x) = (x - w)_+ when positive.
The value z |-> s(w_z) + c m(w_z)^2 is nondecreasing, and strictly increasing where it is positive.
Lemma 5.8 of Koehler and Sohn, quantitatively: the cutoff and the value of a law mu differ from those of nu by explicit amounts that depend only on m_mu, s_mu, m_nu, s_nu at the cutoff of nu; so if m_{mu_n} and s_{mu_n} converge to m_mu and s_mu at the cutoff of mu (no local uniform convergence needed), the cutoffs and the values converge.
For a law invariant under x |-> -x with E X^2 = v: m(-w) = m(w) + w, s(-w) + s(w) = v + w^2, and for c > -1, c' = -c / (1 + c), z' = -z / (1 + c), the cutoff of (c', z') is minus that of (c, z) and the two values add up to v + z^2 / (1 + c) (the scalar part of Lemma 5.9); at z = 0 the variational bound holds without the positive part, (E X f(X))^2 <= value (E f(X)^2 + c (E f(X))^2) (Proposition 5.10 (ii)).
(E g)^2 <= E g^2; a quadratic polynomial a + 2 b t + k t^2 that is nonnegative for all t, with k >= 0, has b^2 <= a k; a law invariant under x |-> -x makes f(-X) integrable with f(X) and gives E f(-X) = E f(X).
The empirical law of a nonempty list s of reals, the average of the Dirac masses at its elements, is a probability on the line; integrals against it are averages over s, so the upper partial moments of the empirical law of g_1, ..., g_d are (1/d) sum_i (g_i - w)_+^k.
The finite form of Lemma 5.7 of Koehler and Sohn for c >= 0, with weights that need not be functions of the values: for r_i >= 0, (1/d) sum_i (g_i + z) r_i <= sqrt V ((1/d) sum_i r_i^2 + c ((1/d) sum_i r_i)^2)^(1/2), V the value of the empirical law of the g_i, with equality at r_i = (g_i - w)_+, w the cutoff.

Declarations93 exported, 31 local

lemma, theoremdefinitioninstancelocal
sectionupper_moments
Context {R : realType} (mu : probability (measurableTypeR R) R).
definition upper_moment main result source, line 123
Type
forall {R : realType}, probability (measurableTypeR R) R -> nat -> R -> R
Definition
Definition upper_moment (k : nat) (w : R) : R :=
  \int[mu]_x (Num.max ((x : R) - w) 0 ^+ k).
Main result, as the README states it

For a law mu on the line with a finite second moment, the upper partial moments m(w) = E (X - w)_+ and s(w) = E (X - w)_+^2: m is nonincreasing and 1-Lipschitz, E X - w <= m(w) <= E X^2 / (4 w) for w > 0, m(w) > 0 if mu(]b, +oo[) > 0 for some b > w, and |s(w + h) - s(w) + 2 h m(w)| <= h^2, so s' = -2 m.

Used by 55 declarations in 2 files
Type
forall {R : realType}, probability (measurableTypeR R) R -> R -> R -> R
Definition
Definition upper_energy (c w : R) : R :=
  upper_moment 2 w + c * upper_moment 1 w ^+ 2.
Used by 11 declarations in 1 file
definition upper_cutoff main result source, line 129
Type
forall {R : realType}, probability (measurableTypeR R) R -> R -> R -> R
Definition
Definition upper_cutoff (c z : R) : R :=
  sup [set w : R | w + z <= c * upper_moment 1 w].
Main result, as the README states it

For c > -1, the equation w + z = c m(w) has exactly one solution, upper_cutoff mu c z = sup {w | w + z <= c m(w)}, and the half-line {w | w + z <= c m(w)} is ]-oo, upper_cutoff mu c z] (Koehler-Sohn, Lemma 5.7).

Used by 21 declarations in 1 file
Type
forall {R : realType}, probability (measurableTypeR R) R -> set (measurableTypeR R -> R)
Definition
Definition upper_admissible : set (measurableTypeR R -> R) :=
  [set f : measurableTypeR R -> R |
    [/\ measurable_fun [set: measurableTypeR R] f, (forall x, 0 <= f x),
    mu.-integrable [set: measurableTypeR R] (EFin \o (fun x => f x ^+ 2)) &
    0 < \int[mu]_x f x]].
Used by 8 declarations in 1 file
Type
forall {R : realType},
probability (measurableTypeR R) R -> R -> R -> (measurableTypeR R -> R) -> R
Definition
Definition upper_ratio (c z : R) (f : measurableTypeR R -> R) : R :=
  Num.max (\int[mu]_x (((x : R) + z) * f x)) 0 ^+ 2 /
  (\int[mu]_x (f x ^+ 2) + c * (\int[mu]_x f x) ^+ 2).
Used by 7 declarations in 1 file
sectionupper_moment_theory
Context {R : realType} (mu : probability (measurableTypeR R) R).
Hypothesis mu2 :
  mu.-integrable [set: measurableTypeR R] (EFin \o (fun x => (x : R) ^+ 2)).
Local Notation m := (upper_moment mu 1).
Local Notation s := (upper_moment mu 2).
Local Notation integrable f :=
  (mu.-integrable [set: measurableTypeR R] (EFin \o f)).
let mx section-local source, line 156
Let mx : measurable_fun [set: measurableTypeR R] (fun x => x : R).
Used by 3 declarations in 1 file
forall {R : realType} (mu : probability (measurableTypeR R) R) (r : R), \int[mu]__ r = r
Statement as written in the source
Lemma Rintegral_prob_cst (r : R) : \int[mu]_x r = r.
Used by 9 declarations in 2 files
local lemma integrableZl_R not exported source, line 164
forall {R : realType} [mu : probability (measurableTypeR R) R] 
  (k : R) [f : measurableTypeR R -> R],
mu.-integrable [set: measurableTypeR R] (EFin \o f) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => k * f x))
Statement as written in the source
Local Lemma integrableZl_R (k : R) (f : measurableTypeR R -> R) :
  integrable f -> integrable (fun x => k * f x).
Used by 13 declarations in 1 file
local lemma integrableD_R not exported source, line 171
forall {R : realType} [mu : probability (measurableTypeR R) R]
  [f g : measurableTypeR R -> R],
mu.-integrable [set: measurableTypeR R] (EFin \o f) ->
mu.-integrable [set: measurableTypeR R] (EFin \o g) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => f x + g x))
Statement as written in the source
Local Lemma integrableD_R (f g : measurableTypeR R -> R) :
  integrable f -> integrable g -> integrable (fun x => f x + g x).
Used by 8 declarations in 1 file
local lemma integrableB_R not exported source, line 178
forall {R : realType} [mu : probability (measurableTypeR R) R]
  [f g : measurableTypeR R -> R],
mu.-integrable [set: measurableTypeR R] (EFin \o f) ->
mu.-integrable [set: measurableTypeR R] (EFin \o g) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => f x - g x))
Statement as written in the source
Local Lemma integrableB_R (f g : measurableTypeR R -> R) :
  integrable f -> integrable g -> integrable (fun x => f x - g x).
Used by 7 declarations in 1 file
local lemma integrable_norm_R not exported source, line 185
forall {R : realType} [mu : probability (measurableTypeR R) R] [f : measurableTypeR R -> R],
mu.-integrable [set: measurableTypeR R] (EFin \o f) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => `|f x|))
Statement as written in the source
Local Lemma integrable_norm_R (f : measurableTypeR R -> R) :
  integrable f -> integrable (fun x => `|f x|).
Used by 1 declaration in 1 file
local lemma integrable_cst_R not exported source, line 192
forall {R : realType} (mu : probability (measurableTypeR R) R) (r : R),
mu.-integrable [set: measurableTypeR R] (EFin \o (fun=> r))
Statement as written in the source
Local Lemma integrable_cst_R (r : R) : integrable (fun _ => r).
Used by 9 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [f : measurableTypeR R -> R] [a b : R],
measurable_fun [set: measurableTypeR R] f ->
(forall x : measurableTypeR R, `|f x| <= a + b * (x : R) ^+ 2) ->
mu.-integrable [set: measurableTypeR R] (EFin \o f)
Statement as written in the source
Lemma integrable_quad_bound (f : measurableTypeR R -> R) (a b : R) :
  measurable_fun [set: measurableTypeR R] f ->
  (forall x, `|f x| <= a + b * (x : R) ^+ 2) -> integrable f.
Used by 9 declarations in 2 files
forall {R : realType} (w : R) (k : nat),
measurable_fun [set: measurableTypeR R]
  (fun
     x : g_sigma_algebraType
           (R.-ocitv).-measurable =>
   maxr ((x : R) - w) 0 ^+ k)
Statement as written in the source
Lemma measurable_upper_pow (w : R) k :
  measurable_fun [set: measurableTypeR R]
    (fun x => Num.max ((x : R) - w) 0 ^+ k).
Used by 3 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall (w : R) [k : nat],
(k <= 2)%N ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => maxr ((x : R) - w) 0 ^+ k))
Statement as written in the source
Lemma integrable_upper_pow (w : R) k : (k <= 2)%N ->
  integrable (fun x => Num.max ((x : R) - w) 0 ^+ k).
Used by 19 declarations in 2 files
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => x : R))
Statement as written in the source
Lemma integrable_idR : integrable (fun x => x : R).
Used by 6 declarations in 2 files
forall {R : realType} (mu : probability (measurableTypeR R) R) (k : nat) (w : R),
0 <= upper_moment mu k w
Statement as written in the source
Lemma upper_moment_ge0 k w : 0 <= upper_moment mu k w.
Used by 7 declarations in 2 files

Pointwise facts about the positive part.

forall {R : realType} (x : R) [w1 w2 : R],
w1 <= w2 -> 0 <= maxr (x - w1) 0 - maxr (x - w2) 0 <= w2 - w1
Statement as written in the source
Lemma upper_part_diff (x w1 w2 : R) : w1 <= w2 ->
  0 <= Num.max (x - w1) 0 - Num.max (x - w2) 0 <= w2 - w1.
Used by 3 declarations in 1 file
forall {R : realType} (x w h : R),
`|maxr (x - (w + h)) 0 ^+ 2 - maxr (x - w) 0 ^+ 2 + 2 * h * maxr (x - w) 0| <= h ^+ 2
Statement as written in the source
Lemma upper_part_sqr_taylor (x w h : R) :
  `|Num.max (x - (w + h)) 0 ^+ 2 - Num.max (x - w) 0 ^+ 2
    + 2 * h * Num.max (x - w) 0| <= h ^+ 2.
Used by 1 declaration in 1 file

Regularity of m and s.

forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [w1 w2 : R], w1 <= w2 -> 0 <= upper_moment mu 1 w1 - upper_moment mu 1 w2 <= w2 - w1
Main result

Stated in the README together with upper_moment.

Statement as written in the source
Lemma upper_moment1_lipschitz w1 w2 : w1 <= w2 ->
  0 <= m w1 - m w2 <= w2 - w1.
Used by 6 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall w : R, \int[mu]_x (x : R) - w <= upper_moment mu 1 w
Main result

Stated in the README together with upper_moment.

Statement as written in the source
Lemma upper_moment1_ge w : \int[mu]_x (x : R) - w <= m w.
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [w : join_Num_POrderNmodule_between_Algebra_BaseAddUMagma_and_Order_Preorder R],
0 < w -> upper_moment mu 1 w <= \int[mu]_x (x : R) ^+ 2 / (4 * w)
Main result

Stated in the README together with upper_moment.

Statement as written in the source
Lemma upper_moment1_le w : 0 < w ->
  m w <= \int[mu]_x ((x : R) ^+ 2) / (4 * w).
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [w b : R], w < b -> (0%R < mu `]b, +oo[%classic)%E -> 0 < upper_moment mu 1 w
Main result

Stated in the README together with upper_moment.

Statement as written in the source
Lemma upper_moment1_gt0 (w b : R) : w < b ->
  (0 < mu `]b, +oo[%classic)%E -> 0 < m w.
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall w h : R,
`|upper_moment mu 2 (w + h) - upper_moment mu 2 w + 2 * h * upper_moment mu 1 w| <= h ^+ 2
Main result

Stated in the README together with upper_moment.

Statement as written in the source
Lemma upper_moment2_taylor w h :
  `|s (w + h) - s w + 2 * h * m w| <= h ^+ 2.
Used by 1 declaration in 1 file

The cutoff: the solution of w + z = c m(w).

forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : join_Num_POrderZmodule_between_Algebra_BaseZmodule_and_Order_Preorder R]
  [w1
   w2 : join_Num_POrderNmodule_between_Algebra_BaseAddMagma_and_Order_Preorder
          (join_Num_POrderZmodule_between_Algebra_BaseZmodule_and_Num_POrderNmodule R)],
-1 < c ->
w1 <= w2 ->
minr 1 (1 + c) * (w2 - w1) <=
w2 - c * upper_moment mu 1 w2 - (w1 - c * upper_moment mu 1 w1)
Statement as written in the source
Lemma upper_cutoff_growth c w1 w2 : -1 < c -> w1 <= w2 ->
  Num.min 1 (1 + c) * (w2 - w1) <= (w2 - c * m w2) - (w1 - c * m w1).
Used by 3 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall (c : R)
  [w1 w2 : join_Num_POrderNmodule_between_Algebra_BaseAddMagma_and_Order_Preorder R],
w1 <= w2 ->
w2 - c * upper_moment mu 1 w2 - (w1 - c * upper_moment mu 1 w1) <= (1 + `|c|) * (w2 - w1)
Statement as written in the source
Lemma upper_cutoff_lipschitz c w1 w2 : w1 <= w2 ->
  (w2 - c * m w2) - (w1 - c * m w1) <= (1 + `|c|) * (w2 - w1).
Used by 1 declaration in 1 file
sectioncutoff
Variables (c z : R).
Hypothesis c1 : -1 < c.
Local Notation H w := (w + z - c * m w).
Local Notation A := [set w : R | w + z <= c * m w].
Local Notation delta := (Num.min 1 (1 + c)).
Local Notation L := (1 + `|c|).
let delta0 section-local source, line 385
Let delta0 : 0 < delta.
Used by 5 declarations in 1 file
let L0 section-local source, line 388
Let L0 : 0 < L.
Used by 1 declaration in 1 file
let H_growth section-local source, line 391
Let H_growth w1 w2 : w1 <= w2 -> delta * (w2 - w1) <= H w2 - H w1.
Used by 4 declarations in 1 file
let H_lip section-local source, line 396
Let H_lip w1 w2 : w1 <= w2 -> H w2 - H w1 <= L * (w2 - w1).
Used by 1 declaration in 1 file
let AE section-local source, line 401
Let AE w : A w <-> H w <= 0.
Used by 4 declarations in 1 file
let A0 section-local source, line 404
Let A0 : A !=set0.
Used by 2 declarations in 1 file
let Aub section-local source, line 415
Let Aub : ubound A (`|H 0| / delta).
Used by 1 declaration in 1 file
let hasA section-local source, line 425
Let hasA : has_sup A.
Used by 2 declarations in 1 file
let H_sup section-local source, line 428
Let H_sup : H (sup A) = 0.
Used by 3 declarations in 1 file
lemma upper_cutoffE main result source, line 454
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : R] (z : R),
-1 < c -> upper_cutoff mu c z + z = c * upper_moment mu 1 (upper_cutoff mu c z)
Main result

Stated in the README together with upper_cutoff.

Statement as written in the source
Lemma upper_cutoffE : upper_cutoff mu c z + z = c * m (upper_cutoff mu c z).
Used by 6 declarations in 1 file
lemma upper_cutoff_le main result source, line 457
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : R] (z : R),
-1 < c -> forall w : R, w + z <= c * upper_moment mu 1 w <-> w <= upper_cutoff mu c z
Main result

Stated in the README together with upper_cutoff.

Statement as written in the source
Lemma upper_cutoff_le w : w + z <= c * m w <-> w <= upper_cutoff mu c z.
Used by 1 declaration in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c z : R],
-1 < c -> forall [w : R], w + z = c * upper_moment mu 1 w -> w = upper_cutoff mu c z
Main result

Stated in the README together with upper_cutoff.

Statement as written in the source
Lemma upper_cutoff_unique w : w + z = c * m w -> w = upper_cutoff mu c z.
Used by 1 declaration in 1 file

Squares, products and Jensen's inequality.

forall {R : realType} [mu : probability (measurableTypeR R) R] [f : measurableTypeR R -> R],
measurable_fun [set: measurableTypeR R] f ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => f x ^+ 2)) ->
mu.-integrable [set: measurableTypeR R] (EFin \o f)
Statement as written in the source
Lemma integrable_of_sqr (f : measurableTypeR R -> R) :
  measurable_fun [set: measurableTypeR R] f ->
  integrable (fun x => f x ^+ 2) -> integrable f.
Used by 7 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R]
  [f g : measurableTypeR R -> R],
measurable_fun [set: measurableTypeR R] f ->
measurable_fun [set: measurableTypeR R] g ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => f x ^+ 2)) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => g x ^+ 2)) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => f x * g x))
Statement as written in the source
Lemma integrable_mul_sqr (f g : measurableTypeR R -> R) :
  measurable_fun [set: measurableTypeR R] f ->
  measurable_fun [set: measurableTypeR R] g ->
  integrable (fun x => f x ^+ 2) -> integrable (fun x => g x ^+ 2) ->
  integrable (fun x => f x * g x).
Used by 4 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R] [g : measurableTypeR R -> R],
mu.-integrable [set: measurableTypeR R] (EFin \o g) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => g x ^+ 2)) ->
(\int[mu]_x g x) ^+ 2 <= \int[mu]_x g x ^+ 2
Main result, as the README states it

(E g)^2 <= E g^2; a quadratic polynomial a + 2 b t + k t^2 that is nonnegative for all t, with k >= 0, has b^2 <= a k; a law invariant under x |-> -x makes f(-X) integrable with f(X) and gives E f(-X) = E f(X).

Statement as written in the source
Lemma Rintegral_sqr_le (g : measurableTypeR R -> R) :
  integrable g -> integrable (fun x => g x ^+ 2) ->
  (\int[mu]_x g x) ^+ 2 <= \int[mu]_x (g x ^+ 2).
Used by 6 declarations in 2 files

The energy s + c m^2 decreases.

forall {R : realType} (x : R) [w1 w2 : R],
w1 <= w2 ->
maxr (x - w1) 0 ^+ 2 - maxr (x - w2) 0 ^+ 2 =
2 * (w2 - w1) * maxr (x - w2) 0 + (maxr (x - w1) 0 - maxr (x - w2) 0) ^+ 2
Statement as written in the source
Lemma upper_part_sqr_diff (x w1 w2 : R) : w1 <= w2 ->
  Num.max (x - w1) 0 ^+ 2 - Num.max (x - w2) 0 ^+ 2 =
  2 * (w2 - w1) * Num.max (x - w2) 0
  + (Num.max (x - w1) 0 - Num.max (x - w2) 0) ^+ 2.
Used by 1 declaration in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : join_Num_POrderZmodule_between_Algebra_BaseZmodule_and_Order_Preorder R]
  [w1 w2 : R],
-1 < c ->
w1 <= w2 ->
2 * minr 1 (1 + c) * upper_moment mu 1 w2 * (w2 - w1) <=
upper_energy mu c w1 - upper_energy mu c w2
Main result, as the README states it

For c > -1, the energy E = s + c m^2 satisfies E(w1) - E(w2) >= 2 min(1, 1 + c) m(w2) (w2 - w1) for w1 <= w2: it is strictly decreasing where m > 0; |E(a) - E(b)| <= 2 (1 + |c|) m(a) (b - a) for a <= b, so E is continuous; and E(w) >= (1 + c) m(w)^2 for every c.

Statement as written in the source
Lemma upper_energy_decr c w1 w2 : -1 < c -> w1 <= w2 ->
  2 * Num.min 1 (1 + c) * m w2 * (w2 - w1) <=
  upper_energy mu c w1 - upper_energy mu c w2.
Used by 1 declaration in 1 file

Cauchy-Schwarz through the discriminant.

lemma discriminant_le main result source, line 596
forall {R : realType} [a b k : R],
0 <= k -> (forall t : R, 0 <= a + 2 * b * t + k * t ^+ 2) -> b ^+ 2 <= a * k
Main result

Stated in the README together with Rintegral_sqr_le.

Statement as written in the source
Lemma discriminant_le (a b k : R) : 0 <= k ->
  (forall t, 0 <= a + 2 * b * t + k * t ^+ 2) -> b ^+ 2 <= a * k.
Used by 3 declarations in 2 files
forall {R : realType} [mu : probability (measurableTypeR R) R]
  [c : join_Num_POrderZmodule_between_Algebra_BaseZmodule_and_Order_Preorder R]
  [f : measurableTypeR R -> R],
-1 < c ->
mu.-integrable [set: measurableTypeR R] (EFin \o f) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => f x ^+ 2)) ->
0 <= \int[mu]_x f x ^+ 2 + c * (\int[mu]_x f x) ^+ 2
Statement as written in the source
Lemma upper_form_ge0 c (f : measurableTypeR R -> R) : -1 < c ->
  integrable f -> integrable (fun x => f x ^+ 2) ->
  0 <= \int[mu]_x (f x ^+ 2) + c * (\int[mu]_x f x) ^+ 2.
Used by 4 declarations in 2 files
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [w : R], upper_moment mu 1 w = 0 -> upper_moment mu 2 w = 0
Statement as written in the source
Lemma upper_moment2_eq0 w : m w = 0 -> s w = 0.
Used by 1 declaration in 1 file
sectionvariational
Variables (c z : R).
Hypothesis c1 : -1 < c.
Local Notation w := (upper_cutoff mu c z).
let p section-local source, line 648
Let p (x : measurableTypeR R) := Num.max ((x : R) - w) 0.
Used by 11 declarations in 1 file
let p_ge0 section-local source, line 650
Let p_ge0 x : 0 <= p x.
let mp section-local source, line 653
Let mp : measurable_fun [set: measurableTypeR R] p.
Used by 1 declaration in 1 file
let p2i section-local source, line 659
Let p2i : integrable (fun x => p x ^+ 2).
Used by 2 declarations in 1 file
let pi section-local source, line 662
Let pi : integrable p.
Used by 1 declaration in 1 file
let Ep section-local source, line 665
Let Ep : \int[mu]_x p x = m w.
Used by 5 declarations in 1 file
let Ep2 section-local source, line 668
Let Ep2 : \int[mu]_x (p x ^+ 2) = s w.
Used by 4 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : R] (z : R), -1 < c -> 0 <= upper_value mu c z
Statement as written in the source
Lemma upper_value_ge0 : 0 <= upper_value mu c z.
Used by 2 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : R] (z : R),
-1 < c ->
\int[mu]_x
   (((x : R) + z) *
    (fun x0 : measurableTypeR R => maxr ((x0 : R) - upper_cutoff mu c z) 0) x) =
upper_value mu c z
Main result

Stated in the README together with upper_variational.

Statement as written in the source
Lemma upper_variational_attained :
  \int[mu]_x (((x : R) + z) * p x) = upper_value mu c z.
Used by 3 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : R] (z : R),
-1 < c ->
forall [f : measurableTypeR R -> R],
measurable_fun [set: measurableTypeR R] f ->
(forall x : measurableTypeR R, 0 <= f x) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => f x ^+ 2)) ->
maxr (\int[mu]_x (((x : R) + z) * f x)) 0 ^+ 2 <=
upper_value mu c z * (\int[mu]_x f x ^+ 2 + c * (\int[mu]_x f x) ^+ 2)
Main result

Stated in the README together with upper_variational.

Statement as written in the source
Lemma upper_variational_le (f : measurableTypeR R -> R) :
  measurable_fun [set: measurableTypeR R] f -> (forall x, 0 <= f x) ->
  integrable (fun x => f x ^+ 2) ->
  Num.max (\int[mu]_x (((x : R) + z) * f x)) 0 ^+ 2 <=
  upper_value mu c z * (\int[mu]_x (f x ^+ 2) + c * (\int[mu]_x f x) ^+ 2).
Used by 2 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c z : R], 0 < upper_value mu c z -> 0 < upper_moment mu 1 (upper_cutoff mu c z)
Statement as written in the source
Lemma upper_moment1_cutoff_gt0 : 0 < upper_value mu c z -> 0 < m w.
Used by 2 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : R] (z : R),
-1 < c ->
forall [f : measurableTypeR R -> R],
upper_admissible mu f -> upper_ratio mu c z f <= upper_value mu c z
Statement as written in the source
Lemma upper_ratio_le f : upper_admissible mu f ->
  upper_ratio mu c z f <= upper_value mu c z.
Used by 3 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R] [c : R] (z : R),
-1 < c ->
forall [f : measurableTypeR R -> R], upper_admissible mu f -> 0 <= upper_ratio mu c z f
Statement as written in the source
Lemma upper_ratio_ge0 f : upper_admissible mu f -> 0 <= upper_ratio mu c z f.
Used by 1 declaration in 1 file
forall {R : realType} (mu : probability (measurableTypeR R) R),
upper_admissible mu (fun=> 1)
Statement as written in the source
Lemma upper_admissible_cst : upper_admissible mu (fun _ => 1).
Used by 2 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c z : R],
0 < upper_value mu c z ->
upper_admissible mu (fun x : measurableTypeR R => maxr ((x : R) - upper_cutoff mu c z) 0)
Statement as written in the source
Lemma upper_admissible_cutoff : 0 < upper_value mu c z -> upper_admissible mu p.
Used by 2 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c z : R],
-1 < c ->
0 < upper_value mu c z ->
upper_ratio mu c z (fun x : measurableTypeR R => maxr ((x : R) - upper_cutoff mu c z) 0) =
upper_value mu c z
Statement as written in the source
Lemma upper_ratio_cutoff : 0 < upper_value mu c z ->
  upper_ratio mu c z p = upper_value mu c z.
Used by 1 declaration in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : R] (z : R),
-1 < c -> sup [set upper_ratio mu c z f | f in upper_admissible mu] = upper_value mu c z
Main result, as the README states it

Lemma 5.7 of Koehler and Sohn: for c > -1 and w the cutoff, the supremum of (E (X + z) f(X))_+^2 / (E f(X)^2 + c (E f(X))^2) over measurable f >= 0 with E f^2 < oo and E f > 0 is s(w) + c m(w)^2, attained at f(x) = (x - w)_+ when positive.

Statement as written in the source
Lemma upper_variational :
  sup [set upper_ratio mu c z f | f in upper_admissible mu] =
  upper_value mu c z.
Used by 1 declaration in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c z : R],
-1 < c ->
forall [z' : R] [f : measurableTypeR R -> R],
z <= z' -> upper_admissible mu f -> upper_ratio mu c z f <= upper_ratio mu c z' f
Statement as written in the source
Lemma upper_ratio_nondecr z' f : z <= z' -> upper_admissible mu f ->
  upper_ratio mu c z f <= upper_ratio mu c z' f.
Used by 1 declaration in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : join_Num_POrderZmodule_between_Algebra_BaseZmodule_and_Order_Preorder R]
  [z z' : R],
-1 < c -> z <= z' -> upper_value mu c z <= upper_value mu c z'
Main result, as the README states it

The value z |-> s(w_z) + c m(w_z)^2 is nondecreasing, and strictly increasing where it is positive.

Statement as written in the source
Lemma upper_value_nondecr c z z' : -1 < c -> z <= z' ->
  upper_value mu c z <= upper_value mu c z'.
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : join_Num_POrderZmodule_between_Algebra_BaseZmodule_and_Order_Preorder R]
  [z z' : R],
-1 < c -> z < z' -> 0 < upper_value mu c z -> upper_value mu c z < upper_value mu c z'
Main result

Stated in the README together with upper_value_nondecr.

Statement as written in the source
Lemma upper_value_incr c z z' : -1 < c -> z < z' -> 0 < upper_value mu c z ->
  upper_value mu c z < upper_value mu c z'.
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [a b : R],
a <= b ->
0 <= upper_moment mu 2 a - upper_moment mu 2 b <=
(b - a) * (upper_moment mu 1 a + upper_moment mu 1 b)
Main result

Stated in the README together with upper_moment.

Statement as written in the source
Lemma upper_moment2_lipschitz a b : a <= b ->
  0 <= s a - s b <= (b - a) * (m a + m b).
Used by 2 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall (c : R) [a b : R],
a <= b ->
`|upper_energy mu c a - upper_energy mu c b| <=
2 * (1 + `|c|) * upper_moment mu 1 a * (b - a)
Main result

Stated in the README together with upper_energy_decr.

Statement as written in the source
Lemma upper_energy_lipschitz c a b : a <= b ->
  `|upper_energy mu c a - upper_energy mu c b| <=
  2 * (1 + `|c|) * m a * (b - a).
Used by 2 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : R], continuous (upper_energy mu c)
Main result

Stated in the README together with upper_energy_decr.

Statement as written in the source
Lemma upper_energy_continuous c : continuous (upper_energy mu c).
lemma upper_energy_lt main result source, line 960
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : join_Num_POrderZmodule_between_Algebra_BaseZmodule_and_Order_Preorder R]
  [w1 w2 : R],
-1 < c ->
w1 < w2 -> 0 < upper_moment mu 1 w2 -> upper_energy mu c w2 < upper_energy mu c w1
Main result

Stated in the README together with upper_energy_decr.

Statement as written in the source
Lemma upper_energy_lt c w1 w2 : -1 < c -> w1 < w2 -> 0 < m w2 ->
  upper_energy mu c w2 < upper_energy mu c w1.
lemma upper_energy_ge main result source, line 969
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall c w : R, (1 + c) * upper_moment mu 1 w ^+ 2 <= upper_energy mu c w
Main result

Stated in the README together with upper_energy_decr.

Statement as written in the source
Lemma upper_energy_ge c w : (1 + c) * m w ^+ 2 <= upper_energy mu c w.
sectionstability
Context {R : realType} (mu nu : probability (measurableTypeR R) R).
Hypothesis mu2 :
  mu.-integrable [set: measurableTypeR R] (EFin \o (fun x => (x : R) ^+ 2)).
Hypothesis nu2 :
  nu.-integrable [set: measurableTypeR R] (EFin \o (fun x => (x : R) ^+ 2)).
Variables (c z : R).
Hypothesis c1 : -1 < c.
Local Notation w2 := (upper_cutoff nu c z).
Local Notation D := (`|upper_moment mu 1 w2 - upper_moment nu 1 w2|).
Local Notation delta := (`|c| / Num.min 1 (1 + c) * D).
forall {R : realType} [mu nu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
nu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : R] (z : R),
-1 < c ->
`|upper_cutoff mu c z - upper_cutoff nu c z| <=
`|c| / minr 1 (1 + c) *
`|upper_moment mu 1 (upper_cutoff nu c z) - upper_moment nu 1 (upper_cutoff nu c z)|
Main result, as the README states it

Lemma 5.8 of Koehler and Sohn, quantitatively: the cutoff and the value of a law mu differ from those of nu by explicit amounts that depend only on m_mu, s_mu, m_nu, s_nu at the cutoff of nu; so if m_{mu_n} and s_{mu_n} converge to m_mu and s_mu at the cutoff of mu (no local uniform convergence needed), the cutoffs and the values converge.

Statement as written in the source
Lemma upper_cutoff_stability : `|upper_cutoff mu c z - w2| <= delta.
Used by 2 declarations in 1 file
forall {R : realType} [mu nu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
nu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c : R] (z : R),
-1 < c ->
`|upper_value mu c z - upper_value nu c z| <=
`|upper_moment mu 2 (upper_cutoff nu c z) - upper_moment nu 2 (upper_cutoff nu c z)| +
`|c| *
`|upper_moment mu 1 (upper_cutoff nu c z) ^+ 2 -
  upper_moment nu 1 (upper_cutoff nu c z) ^+ 2| +
2 * (1 + `|c|) *
(upper_moment mu 1 (upper_cutoff nu c z) +
 `|c| / minr 1 (1 + c) *
 `|upper_moment mu 1 (upper_cutoff nu c z) - upper_moment nu 1 (upper_cutoff nu c z)|) *
(`|c| / minr 1 (1 + c) *
 `|upper_moment mu 1 (upper_cutoff nu c z) - upper_moment nu 1 (upper_cutoff nu c z)|)
Main result

Stated in the README together with upper_cutoff_stability.

Statement as written in the source
Lemma upper_value_stability :
  `|upper_value mu c z - upper_value nu c z| <=
  `|upper_moment mu 2 w2 - upper_moment nu 2 w2|
  + `|c| * `|upper_moment mu 1 w2 ^+ 2 - upper_moment nu 1 w2 ^+ 2|
  + 2 * (1 + `|c|) * (upper_moment mu 1 w2 + delta) * delta.
Used by 1 declaration in 1 file
sectionstability_cvg
Context {R : realType} (mu_ : nat -> probability (measurableTypeR R) R)
  (mu : probability (measurableTypeR R) R).
Hypothesis mu_2 : forall n, (mu_ n).-integrable [set: measurableTypeR R]
  (EFin \o (fun x => (x : R) ^+ 2)).
Hypothesis mu2 :
  mu.-integrable [set: measurableTypeR R] (EFin \o (fun x => (x : R) ^+ 2)).
Variables (c z : R).
Hypothesis c1 : -1 < c.
Local Notation w := (upper_cutoff mu c z).
Hypothesis m_cvg :
  upper_moment (mu_ n) 1 w @[n --> \oo] --> upper_moment mu 1 w.
Hypothesis s_cvg :
  upper_moment (mu_ n) 2 w @[n --> \oo] --> upper_moment mu 2 w.
let K section-local source, line 1092
Let K := `|c| / Num.min 1 (1 + c).
Used by 3 declarations in 1 file
let d section-local source, line 1093
Let d n := K * `|upper_moment (mu_ n) 1 w - upper_moment mu 1 w|.
Used by 3 declarations in 1 file
let d_cvg section-local source, line 1095
Let d_cvg : d n @[n --> \oo] --> 0.
forall {R : realType} [mu_ : nat -> probability (measurableTypeR R) R]
  [mu : probability (measurableTypeR R) R],
(forall n : nat,
 (mu_ n).-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2))) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c z : R],
-1 < c ->
upper_moment (mu_ n) 1 (upper_cutoff mu c z) @[n --> \oo] --> upper_moment mu 1
                                                              (upper_cutoff mu c z) ->
upper_cutoff (mu_ n) c z @[n --> \oo] --> upper_cutoff mu c z
Main result

Stated in the README together with upper_cutoff_stability.

Statement as written in the source
Lemma upper_cutoff_cvg : upper_cutoff (mu_ n) c z @[n --> \oo] --> w.
forall {R : realType} [mu_ : nat -> probability (measurableTypeR R) R]
  [mu : probability (measurableTypeR R) R],
(forall n : nat,
 (mu_ n).-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2))) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [c z : R],
-1 < c ->
upper_moment (mu_ n) 1 (upper_cutoff mu c z) @[n --> \oo] --> upper_moment mu 1
                                                              (upper_cutoff mu c z) ->
upper_moment (mu_ n) 2 (upper_cutoff mu c z) @[n --> \oo] --> upper_moment mu 2
                                                              (upper_cutoff mu c z) ->
upper_value (mu_ n) c z @[n --> \oo] --> upper_value mu c z
Main result

Stated in the README together with upper_cutoff_stability.

Statement as written in the source
Lemma upper_value_cvg :
  upper_value (mu_ n) c z @[n --> \oo] --> upper_value mu c z.
sectionsymmetric_law
Context {R : realType} (mu : probability (measurableTypeR R) R).
Hypothesis mu2 :
  mu.-integrable [set: measurableTypeR R] (EFin \o (fun x => (x : R) ^+ 2)).
Hypothesis musym : forall A : set (measurableTypeR R), measurable A ->
  mu ((fun x => - x) @^-1` A) = mu A.
Local Notation m := (upper_moment mu 1).
Local Notation s := (upper_moment mu 2).
Local Notation integrable f :=
  (mu.-integrable [set: measurableTypeR R] (EFin \o f)).
let mN section-local source, line 1150
Let mN : measurable_fun [set: measurableTypeR R]
  (fun x : measurableTypeR R => (- x : measurableTypeR R)).
Used by 2 declarations in 1 file
lemma integrable_sym main result source, line 1154
forall {R : realType} [mu : probability (measurableTypeR R) R],
(forall A : set (measurableTypeR R),
 (((R.-ocitv).-measurable).-sigma).-measurable A -> mu ([eta -%R] @^-1` A) = mu A) ->
forall [f : measurableTypeR R -> R],
mu.-integrable [set: measurableTypeR R] (EFin \o f) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => f (- x)))
Main result

Stated in the README together with Rintegral_sqr_le.

Statement as written in the source
Lemma integrable_sym (f : measurableTypeR R -> R) :
  integrable f -> integrable (fun x => f (- x)).
Used by 5 declarations in 2 files
lemma Rintegral_sym main result source, line 1174
forall {R : realType} [mu : probability (measurableTypeR R) R],
(forall A : set (measurableTypeR R),
 (((R.-ocitv).-measurable).-sigma).-measurable A -> mu ([eta -%R] @^-1` A) = mu A) ->
forall [f : measurableTypeR R -> R],
mu.-integrable [set: measurableTypeR R] (EFin \o f) -> \int[mu]_x f (- x) = \int[mu]_x f x
Main result

Stated in the README together with Rintegral_sqr_le.

Statement as written in the source
Lemma Rintegral_sym (f : measurableTypeR R -> R) :
  integrable f -> \int[mu]_x f (- x) = \int[mu]_x f x.
Used by 6 declarations in 2 files
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
(forall A : set (measurableTypeR R),
 (((R.-ocitv).-measurable).-sigma).-measurable A -> mu ([eta -%R] @^-1` A) = mu A) ->
\int[mu]_x (x : R) = 0
Statement as written in the source
Lemma Rintegral_id_sym : \int[mu]_x (x : R) = 0.
Used by 4 declarations in 2 files
let upper_reflect section-local source, line 1194
Let upper_reflect k w : (k <= 2)%N ->
  upper_moment mu k (- w) = \int[mu]_x (Num.max (w - (x : R)) 0 ^+ k).
Used by 2 declarations in 1 file
Let integrable_reflect k w : (k <= 2)%N ->
  integrable (fun x => Num.max (w - (x : R)) 0 ^+ k).
Used by 2 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
(forall A : set (measurableTypeR R),
 (((R.-ocitv).-measurable).-sigma).-measurable A -> mu ([eta -%R] @^-1` A) = mu A) ->
forall w : R, upper_moment mu 1 (- w) = upper_moment mu 1 w + w
Main result, as the README states it

For a law invariant under x |-> -x with E X^2 = v: m(-w) = m(w) + w, s(-w) + s(w) = v + w^2, and for c > -1, c' = -c / (1 + c), z' = -z / (1 + c), the cutoff of (c', z') is minus that of (c, z) and the two values add up to v + z^2 / (1 + c) (the scalar part of Lemma 5.9); at z = 0 the variational bound holds without the positive part, (E X f(X))^2 <= value (E f(X)^2 + c (E f(X))^2) (Proposition 5.10 (ii)).

Statement as written in the source
Lemma upper_moment1_sym w : m (- w) = m w + w.
Used by 2 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
(forall A : set (measurableTypeR R),
 (((R.-ocitv).-measurable).-sigma).-measurable A -> mu ([eta -%R] @^-1` A) = mu A) ->
forall w : R,
upper_moment mu 2 (- w) + upper_moment mu 2 w = \int[mu]_x (x : R) ^+ 2 + w ^+ 2
Main result

Stated in the README together with upper_moment1_sym.

Statement as written in the source
Lemma upper_moment2_sym w : s (- w) + s w = \int[mu]_x ((x : R) ^+ 2) + w ^+ 2.
Used by 1 declaration in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
(forall A : set (measurableTypeR R),
 (((R.-ocitv).-measurable).-sigma).-measurable A -> mu ([eta -%R] @^-1` A) = mu A) ->
forall [c : join_Num_POrderZmodule_between_Algebra_BaseZmodule_and_Order_Preorder R]
  (z : join_Num_NumDomain_between_Order_Preorder_and_GRing_UnitRing R),
-1 < c -> upper_cutoff mu (- c / (1 + c)) (- z / (1 + c)) = - upper_cutoff mu c z
Main result

Stated in the README together with upper_moment1_sym.

Statement as written in the source
Lemma upper_cutoff_dual c z : -1 < c ->
  upper_cutoff mu (- c / (1 + c)) (- z / (1 + c)) = - upper_cutoff mu c z.
Used by 1 declaration in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
(forall A : set (measurableTypeR R),
 (((R.-ocitv).-measurable).-sigma).-measurable A -> mu ([eta -%R] @^-1` A) = mu A) ->
forall [c : join_Num_POrderZmodule_between_Algebra_BaseZmodule_and_Order_Preorder R]
  (z : R),
-1 < c ->
upper_value mu c z + upper_value mu (- c / (1 + c)) (- z / (1 + c)) =
\int[mu]_x (x : R) ^+ 2 + z ^+ 2 / (1 + c)
Main result

Stated in the README together with upper_moment1_sym.

Statement as written in the source
Lemma upper_value_dual c z : -1 < c ->
  upper_value mu c z + upper_value mu (- c / (1 + c)) (- z / (1 + c)) =
  \int[mu]_x ((x : R) ^+ 2) + z ^+ 2 / (1 + c).
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
(forall A : set (measurableTypeR R),
 (((R.-ocitv).-measurable).-sigma).-measurable A -> mu ([eta -%R] @^-1` A) = mu A) ->
forall [c : join_Num_POrderZmodule_between_Algebra_BaseZmodule_and_Order_Preorder R]
  [f : measurableTypeR R -> R],
-1 < c ->
measurable_fun [set: measurableTypeR R] f ->
(forall x : measurableTypeR R, 0 <= f x) ->
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : measurableTypeR R => f x ^+ 2)) ->
(\int[mu]_x ((x : R) * f x)) ^+ 2 <=
upper_value mu c 0 * (\int[mu]_x f x ^+ 2 + c * (\int[mu]_x f x) ^+ 2)
Main result

Stated in the README together with upper_moment1_sym.

Statement as written in the source
Lemma upper_variational_sym_le c (f : measurableTypeR R -> R) : -1 < c ->
  measurable_fun [set: measurableTypeR R] f -> (forall x, 0 <= f x) ->
  integrable (fun x => f x ^+ 2) ->
  (\int[mu]_x ((x : R) * f x)) ^+ 2 <=
  upper_value mu c 0 * (\int[mu]_x (f x ^+ 2) + c * (\int[mu]_x f x) ^+ 2).

HB declares canonical projections that the structures of the measure already provide; the warning says so. The setting lasts until the end of this file and is not exported.

Set Warnings "-redundant-canonical-projection".
sectionempirical
Context {R : realType}.
Local Open Scope ereal_scope.
Implicit Types (s : seq R) (A : set (measurableTypeR R)).
Type
forall {R : realType}, seq R -> nat -> measure (measurableTypeR R) R
Definition
Definition emp_diracs s (k : nat) :
    {measure set (measurableTypeR R) -> \bar R} :=
  \d_(nth 0%R s k : measurableTypeR R).

The Dirac masses at the elements of s.

Used by 2 declarations in 1 file
forall {R : realType} (s : seq R), (0 : R) <= ((size s)%:R^-1 : R)
Statement as written in the source
Lemma emp_weight_ge0 s : (0 <= (size s)%:R^-1 :> R)%R.
Used by 1 declaration in 1 file
definition empirical main result source, line 1345
Type
forall {R : realType}, seq R -> set (measurableTypeR R) -> \bar R
Definition
Definition empirical s : set (measurableTypeR R) -> \bar R :=
  if s is [::] then \d_(0%R : measurableTypeR R)
  else mscale (NngNum (emp_weight_ge0 s)) (msum (emp_diracs s) (size s)).

The empirical law of s: the average of the Dirac masses at its elements, and the Dirac mass at 0 when s is empty.

Main result, as the README states it

The empirical law of a nonempty list s of reals, the average of the Dirac masses at its elements, is a probability on the line; integrals against it are averages over s, so the upper partial moments of the empirical law of g_1, ..., g_d are (1/d) sum_i (g_i - w)_+^k.

Used by 12 declarations in 1 file
forall {R : realType} [s : seq R] (A : set (measurableTypeR R)),
s != [::] ->
empirical s A = (((size s)%:R^-1)%:E * (\sum_(x <- s) \d_(x : measurableTypeR R) A)%R)%E
Statement as written in the source
Lemma empiricalE s A : s != [::] ->
  empirical s A =
  (((size s)%:R^-1)%R)%:E * \sum_(x <- s) \d_(x : measurableTypeR R) A.
Used by 1 declaration in 1 file
let empirical0 section-local source, line 1359
Let empirical0 s : empirical s set0 = 0.
Used by 1 declaration in 1 file
let empirical_ge0 section-local source, line 1362
Let empirical_ge0 s A : 0 <= empirical s A.
Used by 1 declaration in 1 file
Let empirical_sigma_additive s : semi_sigma_additive (empirical s).
Used by 1 declaration in 1 file
HB.instance Definition _ s := isMeasure.Build _ _ _ (empirical s)
  (empirical0 s) (empirical_ge0 s) (@empirical_sigma_additive s).
lemma empirical_setT main result source, line 1371
forall {R : realType} (s : seq R), empirical s [set: measurableTypeR R] = 1%E
Main result

Stated in the README together with empirical.

Statement as written in the source
Lemma empirical_setT s : empirical s [set: measurableTypeR R] = 1.
Used by 1 declaration in 1 file
HB.instance Definition _ s :=
  Measure_isProbability.Build _ _ _ (empirical s) (empirical_setT s).
forall {R : realType} [s : seq R] [f : measurableTypeR R -> \bar R],
s != [::] ->
measurable_fun [set: measurableTypeR R] f ->
(forall x : measurableTypeR R, (0%R <= f x)%E) ->
(\int[empirical s]_x f x)%E = (((size s)%:R^-1)%:E * (\sum_(x <- s) f x)%R)%E
Main result

Stated in the README together with empirical.

Statement as written in the source
Lemma ge0_integral_empirical s (f : measurableTypeR R -> \bar R) :
  s != [::] -> measurable_fun [set: measurableTypeR R] f ->
  (forall x, 0 <= f x) ->
  \int[empirical s]_x f x = (((size s)%:R^-1)%R)%:E * \sum_(x <- s) f x.
Used by 2 declarations in 1 file
forall {R : realType} [s : seq R] [f : measurableTypeR R -> R],
s != [::] ->
measurable_fun [set: measurableTypeR R] f ->
(empirical s).-integrable [set: measurableTypeR R] (EFin \o f)
Main result

Stated in the README together with empirical.

Statement as written in the source
Lemma integrable_empirical s (f : measurableTypeR R -> R) :
  s != [::] -> measurable_fun [set: measurableTypeR R] f ->
  (empirical s).-integrable [set: measurableTypeR R] (EFin \o f).
Used by 2 declarations in 1 file
forall {R : realType} [s : seq R] [f : measurableTypeR R -> R],
s != [::] ->
measurable_fun [set: measurableTypeR R] f ->
(forall x : measurableTypeR R, 0 <= f x) ->
\int[empirical s]_x f x = (size s)%:R^-1 * \sum_(x <- s) f x
Statement as written in the source
Lemma Rintegral_empirical_ge0 s (f : measurableTypeR R -> R) :
  s != [::] -> measurable_fun [set: measurableTypeR R] f ->
  (forall x, (0 <= f x)%R) ->
  (\int[empirical s]_x f x = (size s)%:R^-1 * \sum_(x <- s) f x)%R.
Used by 1 declaration in 1 file
forall {R : realType} [s : seq R] [f : measurableTypeR R -> R],
s != [::] ->
measurable_fun [set: measurableTypeR R] f ->
\int[empirical s]_x f x = (size s)%:R^-1 * \sum_(x <- s) f x
Main result

Stated in the README together with empirical.

Statement as written in the source
Lemma Rintegral_empirical s (f : measurableTypeR R -> R) :
  s != [::] -> measurable_fun [set: measurableTypeR R] f ->
  (\int[empirical s]_x f x = (size s)%:R^-1 * \sum_(x <- s) f x)%R.
Used by 1 declaration in 1 file
sectionempirical_variational
Context {R : realType} (d : nat) (g : 'I_d -> R).
Hypothesis d0 : (0 < d)%N.
definition empirical_fun main result source, line 1452
Type
forall {R : realType} [d : nat], ('I_d -> R) -> set (measurableTypeR R) -> \bar R
Definition
Definition empirical_fun := empirical [seq g i | i <- enum 'I_d].

The empirical law of g 0, ..., g (d - 1).

Main result

Stated in the README together with empirical.

Used by 5 declarations in 1 file
Local Notation nu := empirical_fun.
forall {R : realType} [d : nat] (g : 'I_d -> R),
(0 < d)%N -> [seq g i | i <- enum 'I_d] != [::]
Statement as written in the source
Lemma empirical_fun_neq0 : [seq g i | i <- enum 'I_d] != [::].
Used by 2 declarations in 1 file
forall {R : realType} [d : nat] (g : 'I_d -> R) (F : R -> R),
\sum_(x <- [seq g i | i <- enum 'I_d]) F x = \sum_i F (g i)
Statement as written in the source
Lemma sum_empirical_fun (F : R -> R) :
  \sum_(x <- [seq g i | i <- enum 'I_d]) F x = \sum_i F (g i).
Used by 1 declaration in 1 file
forall {R : realType} [d : nat] (g : 'I_d -> R),
(0 < d)%N ->
forall [f : measurableTypeR R -> R],
measurable_fun [set: measurableTypeR R] f ->
\int[empirical_fun g]_x f x = d%:R^-1 * \sum_i f (g i)
Statement as written in the source
Lemma Rintegral_empirical_fun (f : measurableTypeR R -> R) :
  measurable_fun [set: measurableTypeR R] f ->
  \int[nu]_x f x = d%:R^-1 * \sum_i f (g i).
Used by 2 declarations in 1 file
forall {R : realType} [d : nat] (g : 'I_d -> R),
(0 < d)%N ->
(empirical_fun g).-integrable [set: measurableTypeR R]
  (EFin \o (fun x : R => (x : R) ^+ 2))
Statement as written in the source
Lemma empirical_fun_sqr :
  nu.-integrable [set: measurableTypeR R] (EFin \o (fun x => (x : R) ^+ 2)).
Used by 2 declarations in 1 file
forall {R : realType} [d : nat] (g : 'I_d -> R),
(0 < d)%N ->
forall (k : nat) (w : R),
upper_moment (empirical_fun g) k w = d%:R^-1 * \sum_i maxr (g i - w) 0 ^+ k
Main result

Stated in the README together with empirical.

Statement as written in the source
Lemma upper_moment_empirical_fun k w :
  upper_moment nu k w = d%:R^-1 * \sum_i Num.max (g i - w) 0 ^+ k.
Used by 1 declaration in 1 file
forall {R : realType} [d : nat] (g : 'I_d -> R),
(0 < d)%N ->
forall [c : R] (z : R) [r : 'I_d -> R],
0 <= c ->
(forall i : 'I_d, 0 <= r i) ->
d%:R^-1 * \sum_i (g i + z) * r i <=
Num.ExtraDef.sqrtr (upper_value (empirical_fun g) c z) *
Num.ExtraDef.sqrtr (d%:R^-1 * \sum_i r i ^+ 2 + c * (d%:R^-1 * \sum_i r i) ^+ 2)

The finite form of Lemma 5.7: the weights need not be functions of the values g i.

Main result, as the README states it

The finite form of Lemma 5.7 of Koehler and Sohn for c >= 0, with weights that need not be functions of the values: for r_i >= 0, (1/d) sum_i (g_i + z) r_i <= sqrt V ((1/d) sum_i r_i^2 + c ((1/d) sum_i r_i)^2)^(1/2), V the value of the empirical law of the g_i, with equality at r_i = (g_i - w)_+, w the cutoff.

Statement as written in the source
Lemma empirical_variational_le (c z : R) (r : 'I_d -> R) :
  0 <= c -> (forall i, 0 <= r i) ->
  d%:R^-1 * \sum_i (g i + z) * r i <=
  Num.sqrt (upper_value nu c z) *
  Num.sqrt (d%:R^-1 * \sum_i r i ^+ 2 + c * (d%:R^-1 * \sum_i r i) ^+ 2).
forall {R : realType} [d : nat] (g : 'I_d -> R),
(0 < d)%N ->
forall [c : R] (z : R),
-1 < c ->
d%:R^-1 * \sum_i (g i + z) * maxr (g i - upper_cutoff (empirical_fun g) c z) 0 =
upper_value (empirical_fun g) c z
Main result

Stated in the README together with empirical_variational_le.

Statement as written in the source
Lemma empirical_variational_attained (c z : R) : -1 < c ->
  d%:R^-1 * \sum_i (g i + z) * Num.max (g i - upper_cutoff nu c z) 0 =
  upper_value nu c z.

Monotonicity from a Taylor bound

sectiontaylor_monotone
Context {R : realType}.
lemma taylor_nincr main result source, line 1579
forall {R : realType} [F g : R -> R] [K a b : R],
(forall t h : R, 0 <= h -> `|F (t + h) - F t - h * g t| <= K * h ^+ 2) ->
a <= b -> (forall t : R, a <= t -> t < b -> g t <= 0) -> F b <= F a

A function with derivative g in the sense of a Taylor bound with a quadratic remainder does not increase where g <= 0: a discrete integration of the bound.

Main result

Stated in the README together with clip_energy.

Statement as written in the source
Lemma taylor_nincr (F g : R -> R) (K a b : R) :
  (forall t h : R, 0 <= h -> `|F (t + h) - F t - h * g t| <= K * h ^+ 2) ->
  a <= b -> (forall t : R, a <= t -> t < b -> g t <= 0) -> F b <= F a.
Used by 2 declarations in 1 file
lemma taylor_ndecr main result source, line 1625
forall {R : realType} [F g : R -> R] [K a b : R],
(forall t h : R, 0 <= h -> `|F (t + h) - F t - h * g t| <= K * h ^+ 2) ->
a <= b -> (forall t : R, a <= t -> t < b -> 0 <= g t) -> F a <= F b
Main result

Stated in the README together with clip_energy.

Statement as written in the source
Lemma taylor_ndecr (F g : R -> R) (K a b : R) :
  (forall t h : R, 0 <= h -> `|F (t + h) - F t - h * g t| <= K * h ^+ 2) ->
  a <= b -> (forall t : R, a <= t -> t < b -> 0 <= g t) -> F a <= F b.
Used by 1 declaration in 1 file

The energy of a clip to [t, C t]

sectionclip_energy
Context {R : realType} (mu : probability (measurableTypeR R) R).
Hypothesis mu2 :
  mu.-integrable [set: measurableTypeR R] (EFin \o (fun x => (x : R) ^+ 2)).
Local Notation m := (upper_moment mu 1).
Local Notation s := (upper_moment mu 2).
definition clip_energy main result source, line 1656
Type
forall {R : realType}, probability (measurableTypeR R) R -> R -> R -> R
Definition
Definition clip_energy (C t : R) : R := s (- t) + s (C * t).

s(-t) + s(C t): for a symmetric law, the mean of (t - X)_+^2 + (X - C t)_+^2 (clip_energyE), which is the mean squared distance from X to the interval [t, C t] when t <= C t, in particular for C >= 1 and t >= 0.

Main result, as the README states it

For a law with a finite second moment, clip_energy mu C t = s(-t) + s(C t), which for a symmetric law is the mean of (t - X)_+^2 + (X - C t)_+^2, the mean squared distance from X to [t, C t] when t <= C t (for example C >= 1 and t >= 0), and its infimum clip_value mu C over t >= 0. Its derivative in t is 2 (m(-t) - C m(C t)) (a Taylor bound with remainder (1 + C^2) h^2), so a t0 >= 0 where the derivative is <= 0 before and >= 0 after is a minimum. It is nonincreasing in C, with 0 <= clip_energy C t - clip_energy C' t <= (C' - C) t (m(C t) + m(C' t)) for C <= C'. The tool: a function with |F(t + h) - F(t) - h g(t)| <= K h^2 for h >= 0 is nonincreasing where g <= 0 and nondecreasing where g >= 0.

Used by 8 declarations in 1 file
definition clip_value main result source, line 1659
Type
forall {R : realType}, probability (measurableTypeR R) R -> R -> R
Definition
Definition clip_value (C : R) : R :=
  inf [set clip_energy C t | t in [set t : R | 0 <= t]].

Its infimum over t >= 0.

Main result

Stated in the README together with clip_energy.

Used by 4 declarations in 1 file
forall {R : realType} (mu : probability (measurableTypeR R) R) (C t : R),
0 <= clip_energy mu C t
Statement as written in the source
Lemma clip_energy_ge0 (C t : R) : 0 <= clip_energy C t.
Used by 1 declaration in 1 file
forall {R : realType} (mu : probability (measurableTypeR R) R) (C : R) [t : R],
0 <= t -> clip_value mu C <= clip_energy mu C t
Statement as written in the source
Lemma clip_value_le (C t : R) : 0 <= t -> clip_value C <= clip_energy C t.
Used by 2 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R] [C r : R],
(forall t : R, 0 <= t -> r <= clip_energy mu C t) -> r <= clip_value mu C
Statement as written in the source
Lemma clip_value_ge (C r : R) :
  (forall t : R, 0 <= t -> r <= clip_energy C t) -> r <= clip_value C.
Used by 2 declarations in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall C t h : R,
`|clip_energy mu C (t + h) - clip_energy mu C t -
  h * (2 * (upper_moment mu 1 (- t) - C * upper_moment mu 1 (C * t)))| <=
(1 + C ^+ 2) * h ^+ 2

The derivative in t is 2 (m(-t) - C m(C t)).

Main result

Stated in the README together with clip_energy.

Statement as written in the source
Lemma clip_energy_taylor (C t h : R) :
  `|clip_energy C (t + h) - clip_energy C t -
    h * (2 * (m (- t) - C * m (C * t)))| <= (1 + C ^+ 2) * h ^+ 2.
Used by 1 declaration in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [C t0 : R],
0 <= t0 ->
(forall t : R, 0 <= t -> t < t0 -> upper_moment mu 1 (- t) <= C * upper_moment mu 1 (C * t)) ->
(forall t : R, t0 <= t -> C * upper_moment mu 1 (C * t) <= upper_moment mu 1 (- t)) ->
clip_value mu C = clip_energy mu C t0

A zero t0 of the derivative, with the derivative <= 0 before it and >= 0 after it, is a minimum.

Main result

Stated in the README together with clip_energy.

Statement as written in the source
Lemma clip_value_attained (C t0 : R) : 0 <= t0 ->
  (forall t : R, 0 <= t -> t < t0 -> m (- t) <= C * m (C * t)) ->
  (forall t : R, t0 <= t -> C * m (C * t) <= m (- t)) ->
  clip_value C = clip_energy C t0.
lemma clip_energy_C main result source, line 1717
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [C C' t : R],
0 <= t ->
C <= C' ->
0 <= clip_energy mu C t - clip_energy mu C' t <=
(C' - C) * t * (upper_moment mu 1 (C * t) + upper_moment mu 1 (C' * t))
Main result

Stated in the README together with clip_energy.

Statement as written in the source
Lemma clip_energy_C (C C' t : R) : 0 <= t -> C <= C' ->
  0 <= clip_energy C t - clip_energy C' t <=
    (C' - C) * t * (m (C * t) + m (C' * t)).
Used by 1 declaration in 1 file
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
forall [C C' : R], C <= C' -> clip_value mu C' <= clip_value mu C
Main result

Stated in the README together with clip_energy.

Statement as written in the source
Lemma clip_value_nincr (C C' : R) : C <= C' -> clip_value C' <= clip_value C.
sectionclip_energy_sym
Context {R : realType} (mu : probability (measurableTypeR R) R).
Hypothesis mu2 :
  mu.-integrable [set: measurableTypeR R] (EFin \o (fun x => (x : R) ^+ 2)).
Hypothesis musym : forall A : set (measurableTypeR R), measurable A ->
  mu ((fun x => - x) @^-1` A) = mu A.
lemma clip_energyE main result source, line 1747
forall {R : realType} [mu : probability (measurableTypeR R) R],
mu.-integrable [set: measurableTypeR R] (EFin \o (fun x : R => (x : R) ^+ 2)) ->
(forall A : set (measurableTypeR R),
 (((R.-ocitv).-measurable).-sigma).-measurable A -> mu ([eta -%R] @^-1` A) = mu A) ->
forall C t : R,
\int[mu]_x (maxr (t - (x : R)) 0 ^+ 2 + maxr ((x : R) - C * t) 0 ^+ 2) = clip_energy mu C t

For a symmetric law, clip_energy is the integral of (t - x)_+^2 + (x - C t)_+^2, the squared distance from x to [t, C t] when 0 <= t <= C t.

Main result

Stated in the README together with clip_energy.

Statement as written in the source
Lemma clip_energyE (C t : R) :
  \int[mu]_x (Num.max (t - (x : R)) 0 ^+ 2 + Num.max ((x : R) - C * t) 0 ^+ 2) =
  clip_energy mu C t.
Generated from commit 9046883 (tag phase12) of the ellipsoid fitting repository. Signatures are printed by Rocq 9.1.1; links in the source statements come from the compiled .glob files. The source links open the files on GitHub at this commit, in the now-public repository.