On this page
The Ornstein-Uhlenbeck semigroup
Imports 6 library modules and 28 external
- GaussianAnalysis.gaussian.normal_integral
- GaussianAnalysis.gaussian.gauss
- GaussianAnalysis.gaussian.parameter_integral
- GaussianAnalysis.comparison.normal_mgf
- GaussianAnalysis.comparison.normal_linear
- GaussianAnalysis.comparison.gauss_smoothing
External: HB.structures, mathcomp.classical.all_ssreflect_compat, mathcomp.algebra.algebraic_hierarchy.ssralg, mathcomp.algebra.numeric_hierarchy.ssrnum, mathcomp.algebra.interval, mathcomp.algebra.ring_tactic, mathcomp.algebra.field_tactic, mathcomp.algebra.arithmetic_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.derive, mathcomp.analysis.realfun, mathcomp.analysis.exp, mathcomp.analysis.measure_theory.measure, mathcomp.analysis.lebesgue_stieltjes_measure, mathcomp.analysis.lebesgue_measure, mathcomp.analysis.numfun, mathcomp.analysis.measurable_realfun, mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral, mathcomp.analysis.probability_theory.probability, mathcomp.analysis.probability_theory.normal_distribution, mathcomp.analysis.ftc
Imported by 1
For f : R -> R bounded and measurable, the Mehler transform mehler r f x is E[f (r x + sqrt (1 - r^2) Z)] for Z of law normal_prob 0 1, and the Ornstein-Uhlenbeck semigroup is ou t f = mehler (expR (- t)) f (Mehler's formula, ouE). Then mehler 1 f = f and mehler 0 f is the mean of f (mehler1, mehler0, ou0), mehler r f keeps the bounds of f (mehler_le, mehler_ge), the standard normal law is invariant (integral_mehler) and mehler r is a contraction of L^1 of that law (mehler_contraction).
For |r| < 1 the law of r x + sqrt (1 - r^2) Z has the density mehler_kernel r x against normal_prob 0 1 (mehler_kernel_integral): the exponential of a quadratic polynomial in x and y. Differentiating it under the integral (is_derive_normal_kernel) gives the derivatives of mehler r f of order 1, 2 and 3 in x and the derivative in r (is_derive_mehler, is_derive_mehler_d1, is_derive_mehler_d2, is_derive_mehler_r), written as integrals against Hermite polynomials. They satisfy the generator identity r d/dr mehler r f = x (mehler r f)' - (mehler r f)'' (mehler_generator); for t > 0 it reads d/dt ou t f = (ou t f)'' - x (ou t f)' (is_derive_ou_t). The derivatives are bounded (mehler_d1_le, mehler_d2_le, mehler_dr_le) and continuous (continuous_mehler, continuous_mehler_d1, continuous_mehler_d2). The kernel gives the derivative in t as well as those in x, so it replaces the Cameron-Martin formula, which only shifts x.
As t -> +oo, ou t f x tends to the mean of f (ou_cvgy). As t -> 0 from the right, ou t f x tends to f x when f is continuous (ou_cvg0, mehler_cvg1), and ou t f tends to f in L^1 of the standard normal law for every bounded measurable f (ou_cvg0_L1, mehler_cvg_L1). The last limit goes through the density of bounded continuous functions in that space (normal_continuous_approx), which follows from the density of continuous functions in L^1 of Lebesgue measure on a segment (approximation_continuous_integrable of MathComp-Analysis).
mehler_ | the density at y, against normal_prob 0 1, of the law of r x + sqrt (1 - r^2) Z, |r| < 1 |
mehler r f x | E[f (r x + b Z)], with b = sqrt (1 - r^2) |
mehler_ | r / b * E[f (r x + b Z) Z], the derivative of mehler r f at x |
mehler_ | r^2 / b^2 * E[f (r x + b Z) (Z^2 - 1)] |
mehler_ | r^3 / b^3 * E[f (r x + b Z) (Z^3 - 3 Z)] |
mehler_ | E[f (r x + b Z) (x Z / b - r (Z^2 - 1) / b^2)], the derivative of r |-> mehler r f x |
ou t f x | mehler (expR (- t)) f x |
mehler_ | a constant C such that the kernel times a polynomial factor of degree 3 is at most C expR (c |y|) for |r| <= r1 < 1, |x| <= X |
Main results
| Results | Statement |
|---|---|
The Mehler transform mehler r f x = E[f (r x + sqrt (1 - r^2) Z)], Z of law normal_prob 0 1, and the Ornstein-Uhlenbeck semigroup ou t f = mehler (expR (- t)) f (Mehler's formula). mehler 1 f = f and mehler 0 f is the mean of f. | |
For f bounded and measurable: the bounds of f hold for mehler r f; for |r| < 1 the standard normal law is invariant, E[mehler r f] = E[f], and mehler r is a contraction of L^1 of that law. | |
For |r| < 1 the law of r x + sqrt (1 - r^2) Z has the density mehler_kernel r x, an explicit exponential of a quadratic polynomial, with respect to normal_prob 0 1. | |
Differentiation under the integral against normal_prob 0 1, with a bounded measurable factor, for a kernel and its derivative in the parameter dominated by C expR (c |y|) on an open interval. | |
For f bounded and measurable and |r| < 1, mehler r f has derivatives of order 1, 2 and 3 in x and a derivative in r, given by integrals against Hermite polynomials (mehler_d1, mehler_d2, mehler_d3, mehler_dr): for instance (mehler r f)' x = r / b E[f (r x + b Z) Z] with b = sqrt (1 - r^2). Generator identity: r d/dr mehler r f = x (mehler r f)' - (mehler r f)''. | |
For t > 0, the first two derivatives of ou t f in x, and d/dt ou t f x = (ou t f)'' x - x (ou t f)' x. | |
For |f| <= K and |r| < 1: |(mehler r f)'| <= |r| / b K E|Z|, |(mehler r f)''| <= r^2 / b^2 K E|Z^2 - 1|, |d/dr mehler r f x| <= |x| / b K E|Z| + |r| / b^2 K E|Z^2 - 1|; mehler r f and its first two derivatives are continuous. | |
As t -> +oo, ou t f x tends to the mean of f. As t -> 0 from the right (r -> 1), ou t f x tends to f x for f continuous and bounded, and ou t f tends to f in L^1 of the standard normal law for every bounded measurable f. | |
Bounded continuous functions are dense in L^1 of the standard normal law: a measurable f with values in [lo, hi] is within eps of a continuous h with values in [lo, hi]. |
Declarations56 exported, 40 local
Context {R : realType}. Local Notation N := (@normal_prob R 0 1). Implicit Types (r x y : R) (f : R -> R).
forall {R : realType}, R -> R -> R -> RDefinition mehler_kernel r x y : R := expR (- ln (1 - r ^+ 2) / 2 + (2 * r * x * y - r ^+ 2 * (x ^+ 2 + y ^+ 2)) / (2 * (1 - r ^+ 2))).
The density at y, against the standard normal law, of the law of r x + sqrt (1 - r^2) Z for Z standard normal, when |r| < 1.
Used by 22 declarations in 1 file
- this file: mehler_kernel_gt0, normal_pdf_mehler, measurable_mehler_kernel, mehler_kernel_integral, mehler_kernel_le, mehler_kernel_mul_le, is_derive_kx, is_derive_kpx, is_derive_k1, is_derive_k2, is_derive_kr, kernel_bounds, hermite_eq, mehlerE, mehler_d1E, mehler_d2E, mehler_d3E, mehler_drE, is_derive_mehler, is_derive_mehler_d1, is_derive_mehler_d2, is_derive_mehler_r
forall {R : realType}, R -> (R -> R) -> R -> RDefinition mehler r f x : R := \int[N]_z f (r * x + Num.sqrt (1 - r ^+ 2) * z).
The Mehler transform with correlation r: E[f (r x + sqrt (1 - r^2) Z)].
The Mehler transform mehler r f x = E[f (r x + sqrt (1 - r^2) Z)], Z of law normal_prob 0 1, and the Ornstein-Uhlenbeck semigroup ou t f = mehler (expR (- t)) f (Mehler's formula). mehler 1 f = f and mehler 0 f is the mean of f.
Used by 26 declarations in 2 files
- this file: ou, mehler1, mehler0, ouE, mehler_le, mehler_ge, mehlerE, is_derive_mehler, is_derive_mehler_r, continuous_mehler, measurable_mehler, integral_mehler, mehler_contraction, ou_cvgy, continuous_mehler_x, continuous_mehler_r, mehler_cvg1, mehler_L1_le, continuous_mehler_r_abs, mehler_L1_near, mehler_cvg_L1, ou_cvg0_L1, ou_cvg0
- GaussianAnalysis.comparison.brascamp_lieb: g, Lambda_lip, Lambda_cvg1
forall {R : realType}, R -> (R -> R) -> R -> RDefinition mehler_d1 r f x : R := r / Num.sqrt (1 - r ^+ 2) * \int[N]_z (f (r * x + Num.sqrt (1 - r ^+ 2) * z) * z).
Its derivatives of order 1, 2 and 3 in x, and its derivative in r.
Used by 10 declarations in 2 files
- this file: mehler_d1E, is_derive_mehler, is_derive_mehler_d1, mehler_generator, continuous_mehler_d1, mehler_d1_le, is_derive_ou, is_derive_ou_d1, is_derive_ou_t
- GaussianAnalysis.comparison.brascamp_lieb: g1
forall {R : realType}, R -> (R -> R) -> R -> RDefinition mehler_d2 r f x : R := r ^+ 2 / (1 - r ^+ 2) * \int[N]_z (f (r * x + Num.sqrt (1 - r ^+ 2) * z) * (z ^+ 2 - 1)).
Used by 9 declarations in 2 files
- this file: mehler_d2E, is_derive_mehler_d1, is_derive_mehler_d2, mehler_generator, continuous_mehler_d2, mehler_d2_le, is_derive_ou_d1, is_derive_ou_t
- GaussianAnalysis.comparison.brascamp_lieb: g2
forall {R : realType}, R -> (R -> R) -> R -> RDefinition mehler_d3 r f x : R := r ^+ 3 / Num.sqrt (1 - r ^+ 2) ^+ 3 * \int[N]_z (f (r * x + Num.sqrt (1 - r ^+ 2) * z) * (z ^+ 3 - 3 * z)).
Used by 2 declarations in 1 file
- this file: mehler_d3E, is_derive_mehler_d2
forall {R : realType}, R -> (R -> R) -> R -> RDefinition mehler_dr r f x : R := \int[N]_z (f (r * x + Num.sqrt (1 - r ^+ 2) * z) * (x * z / Num.sqrt (1 - r ^+ 2) - r * (z ^+ 2 - 1) / (1 - r ^+ 2))).
Used by 9 declarations in 2 files
- this file: mehler_drE, is_derive_mehler_r, mehler_generator, mehler_dr_split, mehler_dr_le
- GaussianAnalysis.comparison.brascamp_lieb: dG, is_derive_G, is_derive_Lambda, rdG
forall {R : realType}, R -> (R -> R) -> R -> RDefinition ou (t : R) f x : R := mehler (expR (- t)) f x.
The Ornstein-Uhlenbeck semigroup, by Mehler's formula.
Stated in the README together with mehler.
Used by 7 declarations in 1 file
- this file: ouE, ou0, is_derive_ou, is_derive_ou_t, ou_cvgy, ou_cvg0_L1, ou_cvg0
Context {R : realType}. Local Notation N := (@normal_prob R 0 1). Implicit Types (r x y : R) (f : R -> R).
forall {R : realType} (f : R -> R) (x : R), mehler 1 f x = f x
Stated in the README together with mehler.
Statement as written in the source
Lemma mehler1 f x : mehler 1 f x = f x.
Used by 6 declarations in 2 files
- this file: ou0, mehler_cvg1, mehler_L1_near
- GaussianAnalysis.comparison.brascamp_lieb: measurable_G, Lambda1, G1
forall {R : realType} (f : R -> R) (x : R), mehler 0 f x = \int[normal_prob 0 1]_z f z
Stated in the README together with mehler.
Statement as written in the source
Lemma mehler0 f x : mehler 0 f x = \int[N]_z f z.
forall {R : realType} (t : R) (f : R -> R) (x : R), ou t f x = \int[normal_prob 0 1]_z f (expR (- t) * x + Num.ExtraDef.sqrtr (1 - expR (- (2 * t))) * z)
Stated in the README together with mehler.
Statement as written in the source
Lemma ouE (t : R) f x : ou t f x = \int[N]_z f (expR (- t) * x + Num.sqrt (1 - expR (- (2 * t))) * z).
forall {R : realType} (f : R -> R) (x : R), ou 0 f x = f x
Stated in the README together with mehler.
Statement as written in the source
Lemma ou0 f x : ou 0 f x = f x.
Used by 1 declaration in 1 file
- this file: ou_cvg0
forall {R : realType} [F : R -> R] [K : R], measurable_fun [set: R] F -> (forall z : R, `|F z| <= K) -> (normal_prob 0 1).-integrable [set: R] (EFin \o F)
Statement as written in the source
Lemma integrable_normal_bounded (F : R -> R) (K : R) : measurable_fun [set: R] F -> (forall z, `|F z| <= K) -> N.-integrable [set: R] (EFin \o F).
Used by 11 declarations in 1 file
forall {R : realType} [F : R -> R] [K : R], measurable_fun [set: R] F -> (forall z : R, `|F z| <= K) -> `|\int[normal_prob 0 1]_z F z| <= K
Statement as written in the source
Lemma normr_Rintegral_normal_le (F : R -> R) (K : R) : measurable_fun [set: R] F -> (forall z, `|F z| <= K) -> `|\int[N]_z F z| <= K.
Used by 1 declaration in 1 file
- this file: mehler_le
forall {R : realType} [F : R -> R] [a K : R], measurable_fun [set: R] F -> (forall z : R, `|F z| <= K) -> (forall z : R, a <= F z) -> a <= \int[normal_prob 0 1]_z F z
Statement as written in the source
Lemma Rintegral_normal_ge (F : R -> R) (a K : R) : measurable_fun [set: R] F -> (forall z, `|F z| <= K) -> (forall z, a <= F z) -> a <= \int[N]_z F z.
Used by 2 declarations in 2 files
- this file: mehler_ge
- GaussianAnalysis.comparison.brascamp_lieb: gauss_brascamp_lieb_bounded_sec
Let maff r x : measurable_fun [set: R] (fun z => r * x + Num.sqrt (1 - r ^+ 2) * z).
forall {R : realType} [f : R -> R] (r x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|mehler r f x| <= K
For f bounded and measurable: the bounds of f hold for mehler r f; for |r| < 1 the standard normal law is invariant, E[mehler r f] = E[f], and mehler r is a contraction of L^1 of that law.
Statement as written in the source
Lemma mehler_le f r x (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> `|mehler r f x| <= K.
Used by 5 declarations in 2 files
- this file: mehler_contraction, mehler_L1_le, mehler_L1_near
- GaussianAnalysis.comparison.brascamp_lieb: gb, Lambda_lip
forall {R : realType} [f : R -> R] (r x : R) [a K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> (forall y : R, a <= f y) -> a <= mehler r f x
Stated in the README together with mehler_le.
Statement as written in the source
Lemma mehler_ge f r x (a K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> (forall y, a <= f y) -> a <= mehler r f x.
Used by 1 declaration in 1 file
- GaussianAnalysis.comparison.brascamp_lieb: gb
Context {R : realType}.
forall {R : realType} (a0 a1 a2 a3 x : R), is_derive x 1 (fun x0 : R => a0 + a1 * x0 + a2 * x0 ^+ 2 + a3 * x0 ^+ 3) (a1 + 2 * a2 * x + 3 * a3 * x ^+ 2)
Statement as written in the source
Lemma is_derive_cubic (a0 a1 a2 a3 x : R) : is_derive x 1 (fun x => a0 + a1 * x + a2 * x ^+ 2 + a3 * x ^+ 3) (a1 + 2 * a2 * x + 3 * a3 * x ^+ 2).
Used by 1 declaration in 1 file
- this file: is_derive_cubicE
Context {R : realType}. Local Notation N := (@normal_prob R 0 1). Local Notation mu := (@lebesgue_measure R). Implicit Types (r x y : R).
forall {R : realType} [r : R], `|r| < 1 -> 0 < 1 - r ^+ 2Statement as written in the source
Lemma onem_sqr_gt0 r : `|r| < 1 -> 0 < 1 - r ^+ 2.
Used by 17 declarations in 2 files
- this file: normal_pdf_mehler, mehler_kernel_integral, is_derive_kx, is_derive_k1, is_derive_k2, is_derive_kr, mehler_d1E, mehler_d2E, mehler_d3E, mehler_drE, mehler_generator, mehler_d1_le, mehler_d2_le, integral_mehler, mehler_dr_split, mehler_dr_le
- GaussianAnalysis.comparison.brascamp_lieb: w0
forall {R : realType} (r x y : R), 0 < mehler_kernel r x y
Statement as written in the source
Lemma mehler_kernel_gt0 r x y : 0 < mehler_kernel r x y.
Used by 1 declaration in 1 file
- this file: mehler_kernel_mul_le
forall {R : realType} [v : R], 0 < v -> expR (- ln v / 2) = (Num.ExtraDef.sqrtr v)^-1
Statement as written in the source
Lemma expR_lnN_half (v : R) : 0 < v -> expR (- ln v / 2) = (Num.sqrt v)^-1.
Used by 1 declaration in 1 file
- this file: normal_pdf_mehler
forall {R : realType} [r : R] (x y : R), `|r| < 1 -> normal_pdf (r * x) (Num.ExtraDef.sqrtr (1 - r ^+ 2)) y = mehler_kernel r x y * normal_pdf 0 1 y
Statement as written in the source
Lemma normal_pdf_mehler r x y : `|r| < 1 -> normal_pdf (r * x) (Num.sqrt (1 - r ^+ 2)) y = mehler_kernel r x y * normal_pdf 0 1 y.
Used by 1 declaration in 1 file
- this file: mehler_kernel_integral
forall {R : realType} (r x : R), measurable_fun [set: R] (mehler_kernel r x)
Statement as written in the source
Lemma measurable_mehler_kernel r x : measurable_fun [set: R] (mehler_kernel r x).
Used by 5 declarations in 1 file
forall {R : realType} [r x : R] [F : R -> R], `|r| < 1 -> measurable_fun [set: R] F -> (normal_prob 0 1).-integrable [set: R] (EFin \o (fun z : join_Num_NumDomain_between_Order_Preorder_and_GRing_PzSemiRing R => F (r * x + Num.ExtraDef.sqrtr (1 - r ^+ 2) * z))) -> \int[normal_prob 0 1]_z F (r * x + Num.ExtraDef.sqrtr (1 - r ^+ 2) * z) = \int[normal_prob 0 1]_y (F y * mehler_kernel r x y)
The law of r x + sqrt (1 - r^2) Z, for Z standard normal and |r| < 1, has the density mehler_kernel r x against the standard normal law.
For |r| < 1 the law of r x + sqrt (1 - r^2) Z has the density mehler_kernel r x, an explicit exponential of a quadratic polynomial, with respect to normal_prob 0 1.
Statement as written in the source
Lemma mehler_kernel_integral r x (F : R -> R) : `|r| < 1 -> measurable_fun [set: R] F -> N.-integrable [set: R] (EFin \o (fun z => F (r * x + Num.sqrt (1 - r ^+ 2) * z))) -> \int[N]_z F (r * x + Num.sqrt (1 - r ^+ 2) * z) = \int[N]_y (F y * mehler_kernel r x y).
Used by 2 declarations in 1 file
- this file: hermite_eq, mehlerE
Context {R : realType}. Implicit Types (r x y : R).
forall {R : realType} [r x : R] (y : R) [r1 : R] [X : {| Num.POrderZmodule.sort := R; Num.POrderZmodule.class := {| Num.POrderZmodule.choice_hasChoice_mixin := Real.class R; Num.POrderZmodule.eqtype_hasDecEq_mixin := Real.class R; Num.POrderZmodule.Order_isDuallyPreorder_mixin := Real.class R; Num.POrderZmodule.Order_Preorder_isDuallyPOrder_mixin := Real.class R; Num.POrderZmodule.Algebra_hasOpp_mixin := Real.class R; Num.POrderZmodule.Algebra_hasZero_mixin := Real.class R; Num.POrderZmodule.Algebra_hasAdd_mixin := Real.class R; Num.POrderZmodule.Algebra_BaseZmoduleNmodule_isZmodule_mixin := Real.class R; Num.POrderZmodule.Algebra_BaseAddUMagma_isAddUMagma_mixin := Real.class R; Num.POrderZmodule.Algebra_BaseAddMagma_isAddMagma_mixin := Real.class R; Num.POrderZmodule.Algebra_AddMagma_isAddSemigroup_mixin := Real.class R |} |}], 0 <= r1 < 1 -> `|r| <= r1 -> `|x| <= X -> mehler_kernel r x y <= expR (- ln (1 - r1 ^+ 2) / 2) * expR (X / (1 - r1 ^+ 2) * `|y|)
Statement as written in the source
Lemma mehler_kernel_le r x y r1 X : 0 <= r1 < 1 -> `|r| <= r1 -> `|x| <= X -> mehler_kernel r x y <= expR (- ln (1 - r1 ^+ 2) / 2) * expR (X / (1 - r1 ^+ 2) * `|y|).
Used by 1 declaration in 1 file
- this file: mehler_kernel_mul_le
forall {R : realType}, R -> R -> RDefinition mehler_bound (r1 X : R) : R := 24 * expR (- ln (1 - r1 ^+ 2) / 2) * expR (X + 1) / (1 - r1 ^+ 2) ^+ 3.
Used by 6 declarations in 1 file
forall {R : realType} [r x y r1 : R] [X : {| Num.POrderZmodule.sort := R; Num.POrderZmodule.class := {| Num.POrderZmodule.choice_hasChoice_mixin := Real.class R; Num.POrderZmodule.eqtype_hasDecEq_mixin := Real.class R; Num.POrderZmodule.Order_isDuallyPreorder_mixin := Real.class R; Num.POrderZmodule.Order_Preorder_isDuallyPOrder_mixin := Real.class R; Num.POrderZmodule.Algebra_hasOpp_mixin := Real.class R; Num.POrderZmodule.Algebra_hasZero_mixin := Real.class R; Num.POrderZmodule.Algebra_hasAdd_mixin := Real.class R; Num.POrderZmodule.Algebra_BaseZmoduleNmodule_isZmodule_mixin := Real.class R; Num.POrderZmodule.Algebra_BaseAddUMagma_isAddUMagma_mixin := Real.class R; Num.POrderZmodule.Algebra_BaseAddMagma_isAddMagma_mixin := Real.class R; Num.POrderZmodule.Algebra_AddMagma_isAddSemigroup_mixin := Real.class R |} |}] [p : R], 0 <= r1 < 1 -> `|r| <= r1 -> `|x| <= X -> `|p| <= 4 * (`|y| + X + 1) ^+ 3 / (1 - r1 ^+ 2) ^+ 3 -> `|mehler_kernel r x y * p| <= mehler_bound r1 X * expR ((X / (1 - r1 ^+ 2) + 1) * `|y|)
Statement as written in the source
Lemma mehler_kernel_mul_le r x y r1 X (p : R) : 0 <= r1 < 1 -> `|r| <= r1 -> `|x| <= X -> `|p| <= 4 * (`|y| + X + 1) ^+ 3 / (1 - r1 ^+ 2) ^+ 3 -> `|mehler_kernel r x y * p| <= mehler_bound r1 X * expR ((X / (1 - r1 ^+ 2) + 1) * `|y|).
Used by 1 declaration in 1 file
- this file: kernel_bounds
Context {R : realType}. Local Notation N := (@normal_prob R 0 1).
forall {R : realType} [f : R -> R] [K : R] [k dk : R -> R -> R] [u v s C c : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> s \in `]u, v[ -> (forall s' : R, measurable_fun [set: R] (k s')) -> (forall s' y : R, s' \in `]u, v[ -> is_derive s' 1 (k^~ y) (dk s' y)) -> (forall s' y : R, s' \in `]u, v[ -> `|k s' y| <= C * expR (c * `|y|)) -> (forall s' y : R, s' \in `]u, v[ -> `|dk s' y| <= C * expR (c * `|y|)) -> is_derive s 1 (fun s' : R => \int[normal_prob 0 1]_y (f y * k s' y)) (\int[normal_prob 0 1]_y (f y * dk s y))
Differentiation under the integral sign against the standard normal law, for a parameter kernel k s y and its derivative dk s y in s, both dominated by C expR (c |y|) for s in an open interval.
Differentiation under the integral against normal_prob 0 1, with a bounded measurable factor, for a kernel and its derivative in the parameter dominated by C expR (c |y|) on an open interval.
Statement as written in the source
Lemma is_derive_normal_kernel (f : R -> R) (K : R) (k dk : R -> R -> R) (u v s C c : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> s \in `]u, v[ -> (forall s', measurable_fun [set: R] (k s')) -> (forall s' y, s' \in `]u, v[ -> is_derive s' 1 (k ^~ y) (dk s' y)) -> (forall s' y, s' \in `]u, v[ -> `|k s' y| <= C * expR (c * `|y|)) -> (forall s' y, s' \in `]u, v[ -> `|dk s' y| <= C * expR (c * `|y|)) -> is_derive s 1 (fun s' => \int[N]_y (f y * k s' y)) (\int[N]_y (f y * dk s y)).
Used by 4 declarations in 1 file
Context {R : realType}. Local Notation N := (@normal_prob R 0 1). Implicit Types (r x y : R) (f : R -> R).
forall {R : realType} [p : R -> R] [a0 a1 a2 a3 x d : R], (forall t : R, p t = a0 + a1 * t + a2 * t ^+ 2 + a3 * t ^+ 3) -> d = a1 + 2 * a2 * x + 3 * a3 * x ^+ 2 -> is_derive x 1 p d
Statement as written in the source
Lemma is_derive_cubicE (p : R -> R) (a0 a1 a2 a3 x d : R) : (forall t, p t = a0 + a1 * t + a2 * t ^+ 2 + a3 * t ^+ 3) -> d = a1 + 2 * a2 * x + 3 * a3 * x ^+ 2 -> is_derive x 1 p d.
Used by 5 declarations in 2 files
- this file: is_derive_kx, is_derive_k1, is_derive_k2, is_derive_kr
- GaussianAnalysis.comparison.brascamp_lieb: is_derive_mxdot
Let mk1 r x y := r * (y - r * x) / (1 - r ^+ 2).
The polynomial factors of the derivatives of the kernel.
Used by 8 declarations in 1 file
Let mk2 r x y := r ^+ 2 * ((y - r * x) ^+ 2 - (1 - r ^+ 2)) / (1 - r ^+ 2) ^+ 2.
Used by 6 declarations in 1 file
Let mk3 r x y := r ^+ 3 * ((y - r * x) ^+ 3 - 3 * (1 - r ^+ 2) * (y - r * x)) / (1 - r ^+ 2) ^+ 3.
Used by 4 declarations in 1 file
- this file: is_derive_k2, measurable_mk3, mehler_d3E, is_derive_mehler_d2
Let mkr r x y := (x * (y - r * x) * (1 - r ^+ 2) - r * (y - r * x) ^+ 2 + r * (1 - r ^+ 2)) / (1 - r ^+ 2) ^+ 2.
Used by 4 declarations in 1 file
- this file: is_derive_kr, measurable_mkr, mehler_drE, is_derive_mehler_r
Let is_derive_kx r x y : `|r| < 1 -> is_derive x 1 (fun x => mehler_kernel r x y) (mehler_kernel r x y * mk1 r x y).
Used by 2 declarations in 1 file
- this file: is_derive_kpx, is_derive_mehler
Let is_derive_kpx r x y (p : R -> R) (dp : R) : `|r| < 1 -> is_derive x 1 p dp -> is_derive x 1 (fun x => mehler_kernel r x y * p x) (mehler_kernel r x y * (mk1 r x y * p x + dp)).
Used by 2 declarations in 1 file
- this file: is_derive_k1, is_derive_k2
Let is_derive_k1 r x y : `|r| < 1 -> is_derive x 1 (fun x => mehler_kernel r x y * mk1 r x y) (mehler_kernel r x y * mk2 r x y).
Used by 1 declaration in 1 file
- this file: is_derive_mehler_d1
Let is_derive_k2 r x y : `|r| < 1 -> is_derive x 1 (fun x => mehler_kernel r x y * mk2 r x y) (mehler_kernel r x y * mk3 r x y).
Used by 1 declaration in 1 file
- this file: is_derive_mehler_d2
Let is_derive_kr r x y : `|r| < 1 -> is_derive r 1 (fun r => mehler_kernel r x y) (mehler_kernel r x y * mkr r x y).
Used by 1 declaration in 1 file
- this file: is_derive_mehler_r
Let frac_le (a P w w1 : R) (j : nat) : 0 < w1 -> w1 <= w -> w <= 1 -> (j <= 3)%N -> `|a| <= 4 * P ^+ 3 -> `|a / w ^+ j| <= 4 * P ^+ 3 / w1 ^+ 3.
Bounds on the polynomial factors, for |r| <= r1 < 1 and |x| <= X.
Used by 1 declaration in 1 file
- this file: kernel_bounds
Let num_le r x y X : `|r| <= 1 -> `|x| <= X -> let P := `|y| + X + 1 in let z := y - r * x in let w := 1 - r ^+ 2 in [/\ `|r * z| <= 4 * P ^+ 3, `|r ^+ 2 * (z ^+ 2 - w)| <= 4 * P ^+ 3, `|r ^+ 3 * (z ^+ 3 - 3 * w * z)| <= 4 * P ^+ 3 & `|x * z * w - r * z ^+ 2 + r * w| <= 4 * P ^+ 3].
Used by 4 declarations in 1 file
Let kernel_bounds r x y r1 X (j : nat) (a : R) : 0 <= r1 < 1 -> `|r| <= r1 -> `|x| <= X -> (j <= 3)%N -> `|a| <= 4 * (`|y| + X + 1) ^+ 3 -> `|mehler_kernel r x y * (a / (1 - r ^+ 2) ^+ j)| <= mehler_bound r1 X * expR ((X / (1 - r1 ^+ 2) + 1) * `|y|).
Used by 4 declarations in 1 file
Let integrable_fpoly f r x (h : R -> R) (K C0 : R) (k : nat) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> measurable_fun [set: R] h -> (forall z, `|h z| <= C0 * (1 + `|z| ^+ k)) -> N.-integrable [set: R] (EFin \o (fun z => f (r * x + Num.sqrt (1 - r ^+ 2) * z) * h z)).
Used by 5 declarations in 1 file
- this file: hermite_eq, mehler_d1E, mehler_d2E, mehler_d3E, mehler_generator
Let hermite_eq f r x (K : R) (q h : R -> R) (C0 : R) (k : nat) : `|r| < 1 -> measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> measurable_fun [set: R] q -> measurable_fun [set: R] h -> (forall z, q (r * x + Num.sqrt (1 - r ^+ 2) * z) = h z) -> (forall z, `|h z| <= C0 * (1 + `|z| ^+ k)) -> \int[N]_z (f (r * x + Num.sqrt (1 - r ^+ 2) * z) * h z) = \int[N]_y (f y * (mehler_kernel r x y * q y)).
Used by 4 declarations in 1 file
- this file: mehler_d1E, mehler_d2E, mehler_d3E, mehler_drE
Let mehlerE f r x (K : R) : `|r| < 1 -> measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> mehler r f x = \int[N]_y (f y * mehler_kernel r x y).
Used by 2 declarations in 1 file
- this file: is_derive_mehler, is_derive_mehler_r
Let measurable_mk1 r x : measurable_fun [set: R] (mk1 r x).
Used by 2 declarations in 1 file
- this file: mehler_d1E, is_derive_mehler_d1
Let measurable_mk2 r x : measurable_fun [set: R] (mk2 r x).
Used by 2 declarations in 1 file
- this file: mehler_d2E, is_derive_mehler_d2
Let measurable_mk3 r x : measurable_fun [set: R] (mk3 r x).
Used by 1 declaration in 1 file
- this file: mehler_d3E
Let measurable_mkr r x : measurable_fun [set: R] (mkr r x).
Used by 1 declaration in 1 file
- this file: mehler_drE
Let normz_le1 (z : R) : `|z| <= 1 + `|z| ^+ 2.
Used by 2 declarations in 1 file
- this file: mehler_d3E, mehler_drE
Let mehler_d1E f r x (K : R) : `|r| < 1 -> measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> mehler_d1 r f x = \int[N]_y (f y * (mehler_kernel r x y * mk1 r x y)).
Used by 2 declarations in 1 file
- this file: is_derive_mehler, is_derive_mehler_d1
Let mehler_d2E f r x (K : R) : `|r| < 1 -> measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> mehler_d2 r f x = \int[N]_y (f y * (mehler_kernel r x y * mk2 r x y)).
Used by 2 declarations in 1 file
- this file: is_derive_mehler_d1, is_derive_mehler_d2
Let mehler_d3E f r x (K : R) : `|r| < 1 -> measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> mehler_d3 r f x = \int[N]_y (f y * (mehler_kernel r x y * mk3 r x y)).
Used by 1 declaration in 1 file
- this file: is_derive_mehler_d2
Let mehler_drE f r x (K : R) : `|r| < 1 -> measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> mehler_dr r f x = \int[N]_y (f y * (mehler_kernel r x y * mkr r x y)).
Used by 1 declaration in 1 file
- this file: is_derive_mehler_r
Let x_near (x x' : R) : x' \in `]x - 1, x + 1[ -> `|x'| <= `|x| + 1.
Used by 3 declarations in 1 file
- this file: is_derive_mehler, is_derive_mehler_d1, is_derive_mehler_d2
Let x_in (x : R) : x \in `]x - 1, x + 1[.
Used by 3 declarations in 1 file
- this file: is_derive_mehler, is_derive_mehler_d1, is_derive_mehler_d2
forall {R : realType} [f : R -> R] [r : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> is_derive x 1 (mehler r f) (mehler_d1 r f x)
For f bounded and measurable and |r| < 1, mehler r f has derivatives of order 1, 2 and 3 in x and a derivative in r, given by integrals against Hermite polynomials (mehler_d1, mehler_d2, mehler_d3, mehler_dr): for instance (mehler r f)' x = r / b E[f (r x + b Z) Z] with b = sqrt (1 - r^2). Generator identity: r d/dr mehler r f = x (mehler r f)' - (mehler r f)''.
Statement as written in the source
Used by 3 declarations in 2 files
- this file: continuous_mehler, is_derive_ou
- GaussianAnalysis.comparison.brascamp_lieb: is_derive_g
forall {R : realType} [f : R -> R] [r : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> is_derive x 1 (mehler_d1 r f) (mehler_d2 r f x)
Stated in the README together with is_derive_mehler.
Statement as written in the source
Used by 3 declarations in 2 files
- this file: continuous_mehler_d1, is_derive_ou_d1
- GaussianAnalysis.comparison.brascamp_lieb: is_derive_g1
forall {R : realType} [f : R -> R] [r : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> is_derive x 1 (mehler_d2 r f) (mehler_d3 r f x)
Stated in the README together with is_derive_mehler.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: continuous_mehler_d2
forall {R : realType} [f : R -> R] [r : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> is_derive r 1 (fun r0 : R => mehler r0 f x) (mehler_dr r f x)
Stated in the README together with is_derive_mehler.
Statement as written in the source
Used by 3 declarations in 2 files
- this file: is_derive_ou_t, ou_cvgy
- GaussianAnalysis.comparison.brascamp_lieb: is_derive_G
forall {R : realType} [f : R -> R] [r : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> r * mehler_dr r f x = x * mehler_d1 r f x - mehler_d2 r f x
The generator identity, in the variable r = expR (- t).
Stated in the README together with is_derive_mehler.
Statement as written in the source
Used by 2 declarations in 2 files
- this file: is_derive_ou_t
- GaussianAnalysis.comparison.brascamp_lieb: rdG
Context {R : realType}. Local Notation N := (@normal_prob R 0 1). Implicit Types (r x y : R) (f : R -> R).
Let maff r x : measurable_fun [set: R] (fun z => r * x + Num.sqrt (1 - r ^+ 2) * z).
Used by 2 declarations in 1 file
- this file: mehler_d1_le, mehler_d2_le
forall {R : realType} [f : R -> R] [r K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> continuous (mehler r f)
Stated in the README together with mehler_d1_le.
Statement as written in the source
Lemma continuous_mehler f r (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> `|r| < 1 -> continuous (mehler r f).
Used by 1 declaration in 1 file
- this file: measurable_mehler
forall {R : realType} [f : R -> R] [r K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> continuous (mehler_d1 r f)
Stated in the README together with mehler_d1_le.
Statement as written in the source
Lemma continuous_mehler_d1 f r (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> `|r| < 1 -> continuous (mehler_d1 r f).
forall {R : realType} [f : R -> R] [r K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> continuous (mehler_d2 r f)
Stated in the README together with mehler_d1_le.
Statement as written in the source
Lemma continuous_mehler_d2 f r (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> `|r| < 1 -> continuous (mehler_d2 r f).
Used by 1 declaration in 1 file
- GaussianAnalysis.comparison.brascamp_lieb: cg2
forall {R : realType} [f : R -> R] [r K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> measurable_fun [set: R] (mehler r f)
Stated in the README together with mehler_d1_le.
Statement as written in the source
Lemma measurable_mehler f r (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> `|r| < 1 -> measurable_fun [set: R] (mehler r f).
Used by 4 declarations in 2 files
- this file: mehler_contraction, mehler_L1_le
- GaussianAnalysis.comparison.brascamp_lieb: measurable_G, Lambda_lip
forall {R : realType} [F h : R -> R] [K : R], measurable_fun [set: R] F -> (forall z : R, `|F z| <= K) -> measurable_fun [set: R] h -> (normal_prob 0 1).-integrable [set: R] (EFin \o h) -> `|\int[normal_prob 0 1]_z (F z * h z)| <= K * \int[normal_prob 0 1]_z `|h z|
Statement as written in the source
Lemma normr_Rintegral_normal_mul_le (F h : R -> R) (K : R) : measurable_fun [set: R] F -> (forall z, `|F z| <= K) -> measurable_fun [set: R] h -> N.-integrable [set: R] (EFin \o h) -> `|\int[N]_z (F z * h z)| <= K * \int[N]_z `|h z|.
Used by 3 declarations in 1 file
- this file: mehler_d1_le, mehler_d2_le, mehler_dr_le
forall {R : realType} [f : R -> R] [r : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> `|mehler_d1 r f x| <= `|r| / Num.ExtraDef.sqrtr (1 - r ^+ 2) * (K * \int[normal_prob 0 1]_z `|z|)
For |f| <= K and |r| < 1: |(mehler r f)'| <= |r| / b K E|Z|, |(mehler r f)''| <= r^2 / b^2 K E|Z^2 - 1|, |d/dr mehler r f x| <= |x| / b K E|Z| + |r| / b^2 K E|Z^2 - 1|; mehler r f and its first two derivatives are continuous.
Statement as written in the source
Lemma mehler_d1_le f r x (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> `|r| < 1 -> `|mehler_d1 r f x| <= `|r| / Num.sqrt (1 - r ^+ 2) * (K * \int[N]_z `|z|).
Used by 1 declaration in 1 file
- GaussianAnalysis.comparison.brascamp_lieb: a_le
forall {R : realType} [f : R -> R] [r : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> `|mehler_d2 r f x| <= r ^+ 2 / (1 - r ^+ 2) * (K * \int[normal_prob 0 1]_z `|z ^+ 2 - 1|)
Stated in the README together with mehler_d1_le.
Statement as written in the source
Lemma mehler_d2_le f r x (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> `|r| < 1 -> `|mehler_d2 r f x| <= r ^+ 2 / (1 - r ^+ 2) * (K * \int[N]_z `|z ^+ 2 - 1|).
Used by 2 declarations in 1 file
- GaussianAnalysis.comparison.brascamp_lieb: a'_le, dLambda_le0
Context {R : realType}. Local Notation N := (@normal_prob R 0 1). Implicit Types (r x y : R) (f : R -> R).
Let maff r x : measurable_fun [set: R] (fun z => r * x + Num.sqrt (1 - r ^+ 2) * z).
Used by 1 declaration in 1 file
- this file: integrable_maff
Let integrable_maff f r x (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> N.-integrable [set: R] (EFin \o (fun z => f (r * x + Num.sqrt (1 - r ^+ 2) * z))).
Used by 2 declarations in 1 file
- this file: integral_mehler, mehler_contraction
forall {R : realType} [f : R -> R] [r K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> \int[normal_prob 0 1]_x mehler r f x = \int[normal_prob 0 1]_y f y
The standard normal law is invariant: integrating mehler r f against it is integrating f.
Stated in the README together with mehler_le.
Statement as written in the source
Theorem integral_mehler f r (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> `|r| < 1 -> \int[N]_x mehler r f x = \int[N]_y f y.
Used by 1 declaration in 1 file
- this file: mehler_contraction
forall {R : realType} [f h : R -> R] [r K : R], measurable_fun [set: R] f -> measurable_fun [set: R] h -> (forall y : R, `|f y| <= K) -> (forall y : R, `|h y| <= K) -> `|r| < 1 -> \int[normal_prob 0 1]_x `|mehler r f x - mehler r h x| <= \int[normal_prob 0 1]_y `|f y - h y|
Stated in the README together with mehler_le.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: mehler_L1_le
Context {R : realType}. Local Notation N := (@normal_prob R 0 1). Local Notation mu := (@lebesgue_measure R).
Let clip (lo hi a : R) := Num.min hi (Num.max lo a).
Used by 3 declarations in 1 file
- this file: clip_le, clip_in, normal_continuous_approx
Let clip_le (lo hi a b : R) : lo <= hi -> lo <= b <= hi -> `|b - clip lo hi a| <= `|b - a|.
Used by 1 declaration in 1 file
- this file: normal_continuous_approx
Let clip_in (lo hi a : R) : lo <= hi -> lo <= clip lo hi a <= hi.
Used by 1 declaration in 1 file
- this file: normal_continuous_approx
Let normal_pdf01_le1 (y : R) : normal_pdf 0 1 y <= 1.
Used by 1 declaration in 1 file
- this file: normal_continuous_approx
forall {R : realType} [f : R -> R] [lo hi eps : R], measurable_fun [set: R] f -> (forall y : R, lo <= f y <= hi) -> 0 < eps -> exists h : R -> R, [/\ continuous h, forall y : R, lo <= h y <= hi & \int[normal_prob 0 1]_y `|f y - h y| < eps]
Bounded continuous functions are dense in L^1 of the standard normal law, within the same bounds.
Bounded continuous functions are dense in L^1 of the standard normal law: a measurable f with values in [lo, hi] is within eps of a continuous h with values in [lo, hi].
Statement as written in the source
Theorem normal_continuous_approx (f : R -> R) (lo hi eps : R) : measurable_fun [set: R] f -> (forall y, lo <= f y <= hi) -> 0 < eps -> exists h : R -> R, [/\ continuous h, (forall y, lo <= h y <= hi) & \int[N]_y `|f y - h y| < eps].
Used by 1 declaration in 1 file
- this file: mehler_L1_near
Context {R : realType}. Local Notation N := (@normal_prob R 0 1). Implicit Types (r x y t : R) (f : R -> R).
forall {R : realType} [f : R -> R] [r : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> mehler_dr r f x = x / Num.ExtraDef.sqrtr (1 - r ^+ 2) * \int[normal_prob 0 1]_z (f (r * x + Num.ExtraDef.sqrtr (1 - r ^+ 2) * z) * z) - r / (1 - r ^+ 2) * \int[normal_prob 0 1]_z (f (r * x + Num.ExtraDef.sqrtr (1 - r ^+ 2) * z) * (z ^+ 2 - 1))
Statement as written in the source
Lemma mehler_dr_split f r x (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> `|r| < 1 -> mehler_dr r f x = x / Num.sqrt (1 - r ^+ 2) * \int[N]_z (f (r * x + Num.sqrt (1 - r ^+ 2) * z) * z) - r / (1 - r ^+ 2) * \int[N]_z (f (r * x + Num.sqrt (1 - r ^+ 2) * z) * (z ^+ 2 - 1)).
Used by 1 declaration in 1 file
- this file: mehler_dr_le
forall {R : realType} [f : R -> R] [r : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> `|r| < 1 -> `|mehler_dr r f x| <= `|x| / Num.ExtraDef.sqrtr (1 - r ^+ 2) * (K * \int[normal_prob 0 1]_z `|z|) + `|r| / (1 - r ^+ 2) * (K * \int[normal_prob 0 1]_z `|z ^+ 2 - 1|)
Stated in the README together with mehler_d1_le.
Statement as written in the source
Lemma mehler_dr_le f r x (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> `|r| < 1 -> `|mehler_dr r f x| <= `|x| / Num.sqrt (1 - r ^+ 2) * (K * \int[N]_z `|z|) + `|r| / (1 - r ^+ 2) * (K * \int[N]_z `|z ^+ 2 - 1|).
Used by 1 declaration in 1 file
- GaussianAnalysis.comparison.brascamp_lieb: is_derive_Lambda
forall {R : realType} [t : R], 0 < t -> `|expR (- t)| < 1
Statement as written in the source
Lemma expRN_lt1 t : 0 < t -> `|expR (- t)| < 1.
Used by 3 declarations in 1 file
- this file: is_derive_ou, is_derive_ou_d1, is_derive_ou_t
forall {R : realType} [f : R -> R] [t : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> 0 < t -> is_derive x 1 (ou t f) (mehler_d1 (expR (- t)) f x)
For t > 0, the first two derivatives of ou t f in x, and d/dt ou t f x = (ou t f)'' x - x (ou t f)' x.
forall {R : realType} [f : R -> R] [t : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> 0 < t -> is_derive x 1 (mehler_d1 (expR (- t)) f) (mehler_d2 (expR (- t)) f x)
Stated in the README together with is_derive_ou.
forall {R : realType} [f : R -> R] [t : R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> 0 < t -> is_derive t 1 (fun t0 : R => ou t0 f x) (mehler_d2 (expR (- t)) f x - x * mehler_d1 (expR (- t)) f x)
The generator identity: d/dt ou t f = (ou t f)'' - x (ou t f)'.
Stated in the README together with is_derive_ou.
forall {R : realType} [f : R -> R] (x : R) [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> ou t f x @[t --> +oo] --> \int[normal_prob 0 1]_y f y
As t -> +oo, ou t f x tends to the mean of f. As t -> 0 from the right (r -> 1), ou t f x tends to f x for f continuous and bounded, and ou t f tends to f in L^1 of the standard normal law for every bounded measurable f.
Statement as written in the source
Theorem ou_cvgy f x (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> ou t f x @[t --> +oo] --> \int[N]_y f y.
Context {R : realType}. Local Notation N := (@normal_prob R 0 1). Implicit Types (r x y t : R) (f h : R -> R).
Let integrable_cst (K : R) : N.-integrable [set: R] (EFin \o (fun=> K)).
forall {R : realType} [h : R -> R] [r K : R], continuous h -> (forall y : R, `|h y| <= K) -> continuous (mehler r h)
For h continuous and bounded, mehler r h x is continuous in x and in r, for every r.
Stated in the README together with ou_cvgy.
Statement as written in the source
Lemma continuous_mehler_x h r (K : R) : continuous h -> (forall y, `|h y| <= K) -> continuous (mehler r h).
Used by 1 declaration in 1 file
- this file: mehler_L1_near
forall {R : realType} [h : R -> R] [x K : R], continuous h -> (forall y : R, `|h y| <= K) -> continuous (fun r : R => mehler r h x)
Stated in the README together with ou_cvgy.
Statement as written in the source
Lemma continuous_mehler_r h x (K : R) : continuous h -> (forall y, `|h y| <= K) -> continuous (fun r => mehler r h x).
Used by 3 declarations in 1 file
- this file: mehler_cvg1, continuous_mehler_r_abs, ou_cvg0
forall {R : realType} [h : R -> R] [x K : R], continuous h -> (forall y : R, `|h y| <= K) -> mehler r h x @[r --> 1 : R] --> h x
Stated in the README together with ou_cvgy.
Statement as written in the source
Theorem mehler_cvg1 h x (K : R) : continuous h -> (forall y, `|h y| <= K) -> mehler r h x @[r --> (1 : R)] --> h x.
Let integrable_abs_bounded (F : R -> R) (C : R) : measurable_fun [set: R] F -> (forall y, `|F y| <= C) -> N.-integrable [set: R] (EFin \o (fun y => `|F y|)).
Used by 2 declarations in 1 file
- this file: mehler_L1_le, mehler_L1_near
Let mehler_L1_le f h r (K : R) : measurable_fun [set: R] f -> measurable_fun [set: R] h -> (forall y, `|f y| <= K) -> (forall y, `|h y| <= K) -> `|r| < 1 -> \int[N]_x `|mehler r f x - f x| <= \int[N]_y `|f y - h y| + \int[N]_x `|mehler r h x - h x| + \int[N]_y `|h y - f y|.
Used by 1 declaration in 1 file
- this file: mehler_L1_near
Let continuous_mehler_r_abs h (x K : R) : continuous h -> (forall y, `|h y| <= K) -> continuous (fun r => `|mehler r h x - h x|).
Used by 1 declaration in 1 file
- this file: mehler_L1_near
Let sum3_lt (a b c e : R) : a < e / 3 -> b < e / 3 -> c < e / 3 -> a + b + c <= e.
Used by 1 declaration in 1 file
- this file: mehler_L1_near
Let mehler_L1_near f (K eps : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> 0 < eps -> \forall r \near (1 : R), `|r| < 1 -> \int[N]_x `|mehler r f x - f x| <= eps.
Used by 1 declaration in 1 file
- this file: mehler_cvg_L1
forall {R : realType} [f : R -> R] [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> \int[normal_prob 0 1]_x `|mehler r f x - f x| @[r --> (1 : R)^'-] --> 0
For f bounded and measurable, mehler r f tends to f in L^1 of the standard normal law as r tends to 1 from the left.
Stated in the README together with ou_cvgy.
Statement as written in the source
Theorem mehler_cvg_L1 f (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> \int[N]_x `|mehler r f x - f x| @[r --> (1 : R)^'-] --> 0.
Used by 2 declarations in 2 files
- this file: ou_cvg0_L1
- GaussianAnalysis.comparison.brascamp_lieb: Lambda_cvg1
forall {R : realType} [f : R -> R] [K : R], measurable_fun [set: R] f -> (forall y : R, `|f y| <= K) -> \int[normal_prob 0 1]_x `|ou t f x - f x| @[t --> (0 : R)^'+] --> 0
Stated in the README together with ou_cvgy.
Statement as written in the source
Theorem ou_cvg0_L1 f (K : R) : measurable_fun [set: R] f -> (forall y, `|f y| <= K) -> \int[N]_x `|ou t f x - f x| @[t --> (0 : R)^'+] --> 0.
forall {R : realType} [h : R -> R] [x K : R], continuous h -> (forall y : R, `|h y| <= K) -> ou t h x @[t --> (0 : R)^'+] --> h x
Stated in the README together with ou_cvgy.
Statement as written in the source
Theorem ou_cvg0 h x (K : R) : continuous h -> (forall y, `|h y| <= K) -> ou t h x @[t --> (0 : R)^'+] --> h x.