On this page
The total variation distance
Imports 1 library modules and 22 external
External: HB.structures, mathcomp.classical.all_ssreflect_compat, mathcomp.algebra.algebraic_hierarchy.ssralg, mathcomp.algebra.numeric_hierarchy.ssrnum, 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.exp, 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, mathcomp.algebra.arithmetic_tactic, mathcomp.algebra.ring_tactic, mathcomp.algebra.field_tactic
Required by 2 files of the paper proofs
The total variation distance of two probabilities on a measurable type is the supremum of |P A - Q A| over the measurable sets A. It is a real number in [0, 1], since probabilities are finite.
tv_ | sup {|P A - Q A| : A measurable}, a real number |
Main results:
- tv_dist_ge, tv_dist_geE, tv_dist_le: |P A - Q A| <= tv_dist P Q for every measurable A (as reals and as extended reals), and tv_dist P Q is the least such bound; tv_distE: as an extended real it is the ereal_sup of the |P A - Q A|;
- tv_dist_ge0, tv_dist_le1, tv_distC, tv_dist_triangle, tv_dist_eq0, tv_distxx: a pseudometric with values in [0, 1], zero for laws that agree on the measurable sets;
- tuple_prod_tv: for laws mu i and nu i on T and every measurable set A of n-tuples, |tuple_prod mu n A - tuple_prod nu n A| is at most the sum of the tv_dist (mu i) (nu i), i < n (the hybrid argument of lindeberg_replacement with the indicator of A);
- one_sub_le_expR, expR_le_one_sub, pow_one_sub_bounds: for 0 <= x < n, exp (- x n / (n - x)) <= (1 - x / n)^n <= exp (- x); pow_one_sub_dist: |(1 - x / n)^n - exp (- x)| <= x^2 / (n - x); pow_one_sub_cvg: (1 - x / n)^n tends to exp (- x) for every x >= 0.
Main results
| Results | Statement |
|---|---|
The total variation distance of two probabilities P and Q on a measurable type: tv_dist P Q = sup {|P A - Q A| : A measurable}, a real number. For every measurable A, |P A - Q A| <= tv_dist P Q, as reals and as extended reals, and tv_dist P Q is the least such bound; as an extended real it is the ereal_sup of the |P A - Q A|. | |
A pseudometric with values in [0, 1]: symmetric, with the triangle inequality, and zero for laws that agree on the measurable sets. | |
For laws mu i and nu i on T and every measurable set A of n-tuples, |tuple_prod mu n A - tuple_prod nu n A| <= sum_(i < n) tv_dist (mu i) (nu i): the hybrid argument of lindeberg_replacement, with the indicator of A. | |
For 0 <= x < n, exp (- x n / (n - x)) <= (1 - x / n)^n <= exp (- x) and |(1 - x / n)^n - exp (- x)| <= x^2 / (n - x); hence (1 - x / n)^n tends to exp (- x) for every x >= 0. |
Declarations19 exported, 2 local
Context d (T : measurableType d) (R : realType). Implicit Types P Q S : probability T R.
forall [d : measure_display] [T : measurableType d] [R : realType],
probability T R -> probability T R -> RDefinition tv_dist P Q : R := sup [set `|fine (P A) - fine (Q A)| | A in measurable].
The total variation distance of two probabilities P and Q on a measurable type: tv_dist P Q = sup {|P A - Q A| : A measurable}, a real number. For every measurable A, |P A - Q A| <= tv_dist P Q, as reals and as extended reals, and tv_dist P Q is the least such bound; as an extended real it is the ereal_sup of the |P A - Q A|.
Used by 11 declarations in 1 file
- this file: tv_dist_ge, tv_dist_geE, tv_dist_le, tv_dist_ge0, tv_dist_le1, tv_distC, tv_dist_triangle, tv_dist_eq0, tv_distxx, tv_distE, tuple_prod_tv
forall [d : measure_display] [T : measurableType d] [R : realType] (P : probability T R) [A : set T], d.-measurable A -> 0 <= fine (P A) <= 1
Statement as written in the source
Lemma prob_fine_itv P (A : set T) : measurable A -> 0 <= fine (P A) <= 1.
Used by 1 declaration in 1 file
- this file: prob_fineB_le1
forall [d : measure_display] [T : measurableType d] [R : realType] (P Q : probability T R) [A : set T], d.-measurable A -> `|fine (P A) - fine (Q A)| <= 1
Statement as written in the source
Lemma prob_fineB_le1 P Q (A : set T) : measurable A -> `|fine (P A) - fine (Q A)| <= 1.
Used by 2 declarations in 1 file
- this file: tv_ub, tv_dist_le1
Let tv_ub P Q : has_ubound [set `|fine (P A) - fine (Q A)| | A in measurable].
Used by 1 declaration in 1 file
- this file: tv_dist_ge
Let tv_ne P Q : [set `|fine (P A) - fine (Q A)| | A in measurable] !=set0.
Used by 1 declaration in 1 file
- this file: tv_dist_le
forall [d : measure_display] [T : measurableType d] [R : realType] (P Q : probability T R) [A : set T], d.-measurable A -> `|fine (P A) - fine (Q A)| <= tv_dist P Q
Stated in the README together with tv_dist.
Statement as written in the source
Lemma tv_dist_ge P Q (A : set T) : measurable A -> `|fine (P A) - fine (Q A)| <= tv_dist P Q.
Used by 5 declarations in 1 file
- this file: tv_dist_geE, tv_dist_ge0, tv_distC, tv_dist_triangle, tuple_prod_tv
forall [d : measure_display] [T : measurableType d] [R : realType] (P Q : probability T R) [A : set T], d.-measurable A -> (`|P A - Q A| <= (tv_dist P Q)%:E)%E
Stated in the README together with tv_dist.
Statement as written in the source
Lemma tv_dist_geE P Q (A : set T) : measurable A -> (`|P A - Q A| <= (tv_dist P Q)%:E)%E.
forall [d : measure_display] [T : measurableType d] [R : realType] [P Q : probability T R] [c : R], (forall A : set T, d.-measurable A -> `|fine (P A) - fine (Q A)| <= c) -> tv_dist P Q <= c
Stated in the README together with tv_dist.
Statement as written in the source
Lemma tv_dist_le P Q (c : R) : (forall A, measurable A -> `|fine (P A) - fine (Q A)| <= c) -> tv_dist P Q <= c.
Used by 4 declarations in 1 file
- this file: tv_dist_le1, tv_distC, tv_dist_triangle, tv_dist_eq0
forall [d : measure_display] [T : measurableType d] [R : realType] (P Q : probability T R), 0 <= tv_dist P Q
A pseudometric with values in [0, 1]: symmetric, with the triangle inequality, and zero for laws that agree on the measurable sets.
Statement as written in the source
Lemma tv_dist_ge0 P Q : 0 <= tv_dist P Q.
Used by 1 declaration in 1 file
- this file: tv_dist_eq0
forall [d : measure_display] [T : measurableType d] [R : realType] (P Q : probability T R), tv_dist P Q <= 1
Stated in the README together with tv_dist_ge0.
Statement as written in the source
Lemma tv_dist_le1 P Q : tv_dist P Q <= 1.
forall [d : measure_display] [T : measurableType d] [R : realType] (P Q : probability T R), tv_dist P Q = tv_dist Q P
Stated in the README together with tv_dist_ge0.
forall [d : measure_display] [T : measurableType d] [R : realType] (P Q S : probability T R), tv_dist P S <= tv_dist P Q + tv_dist Q S
Stated in the README together with tv_dist_ge0.
forall [d : measure_display] [T : measurableType d] [R : realType] [P Q : probability T R], (forall A : set T, d.-measurable A -> P A = Q A) -> tv_dist P Q = 0
Stated in the README together with tv_dist_ge0.
Statement as written in the source
Lemma tv_dist_eq0 P Q : (forall A, measurable A -> P A = Q A) -> tv_dist P Q = 0.
Used by 1 declaration in 1 file
- this file: tv_distxx
forall [d : measure_display] [T : measurableType d] [R : realType] (P : probability T R), tv_dist P P = 0
Stated in the README together with tv_dist_ge0.
Statement as written in the source
Lemma tv_distxx P : tv_dist P P = 0.
forall [d : measure_display] [T : measurableType d] [R : realType] (P Q : probability T R), (tv_dist P Q)%:E = ereal_sup [set `|P A - Q A|%E | A in d.-measurable]
Stated in the README together with tv_dist.
Statement as written in the source
Lemma tv_distE P Q : (tv_dist P Q)%:E = ereal_sup [set (`|P A - Q A|)%E | A in measurable].
The product bound: replace the coordinates one at a time.
Context d (T : measurableType d) (R : realType).
forall [d : measure_display] [T : measurableType d] [R : realType] (mu nu : nat -> probability T R) [n : nat] [A : set (n.-tuple T)], (measure_tuple_display d).-measurable A -> (`|tuple_prod mu n A - tuple_prod nu n A| <= (\sum_(i < n) tv_dist (mu i) (nu i))%:E)%E
For laws mu i and nu i on T and every measurable set A of n-tuples, |tuple_prod mu n A - tuple_prod nu n A| <= sum_(i < n) tv_dist (mu i) (nu i): the hybrid argument of lindeberg_replacement, with the indicator of A.
Statement as written in the source
Theorem tuple_prod_tv (mu nu : nat -> probability T R) n (A : set (n.-tuple T)) : measurable A -> (`|tuple_prod mu n A - tuple_prod nu n A| <= (\sum_(i < n) tv_dist (mu i) (nu i))%:E)%E.
(1 - x / n)^n tends to exp (- x).
Variable R : realType.
forall [R : realType] (y : R), 1 - y <= expR (- y)
Statement as written in the source
Lemma one_sub_le_expR (y : R) : 1 - y <= expR (- y).
Used by 2 declarations in 1 file
- this file: pow_one_sub_bounds, pow_one_sub_dist
forall [R : realType] [y : R], 0 <= y < 1 -> expR (- (y / (1 - y))) <= 1 - y
Statement as written in the source
Lemma expR_le_one_sub (y : R) : 0 <= y < 1 -> expR (- (y / (1 - y))) <= 1 - y.
Used by 1 declaration in 1 file
- this file: pow_one_sub_bounds
forall [R : realType] [x : R] [n : nat], 0 <= x -> x < n%:R -> expR (- (x * n%:R / (n%:R - x))) <= (1 - x / n%:R) ^+ n <= expR (- x)
For 0 <= x < n, exp (- x n / (n - x)) <= (1 - x / n)^n <= exp (- x) and |(1 - x / n)^n - exp (- x)| <= x^2 / (n - x); hence (1 - x / n)^n tends to exp (- x) for every x >= 0.
Statement as written in the source
Lemma pow_one_sub_bounds (x : R) n : 0 <= x -> x < n%:R -> expR (- (x * n%:R / (n%:R - x))) <= (1 - x / n%:R) ^+ n <= expR (- x).
Used by 1 declaration in 1 file
- this file: pow_one_sub_dist
forall [R : realType] [x : R] [n : nat], 0 <= x -> x < n%:R -> `|(1 - x / n%:R) ^+ n - expR (- x)| <= x ^+ 2 / (n%:R - x)
Stated in the README together with pow_one_sub_bounds.
Statement as written in the source
Lemma pow_one_sub_dist (x : R) n : 0 <= x -> x < n%:R -> `|(1 - x / n%:R) ^+ n - expR (- x)| <= x ^+ 2 / (n%:R - x).
Used by 1 declaration in 1 file
- this file: pow_one_sub_cvg
forall [R : realType] [x : R], 0 <= x -> (1 - x / n%:R) ^+ n @[n --> \oo] --> expR (- x)
Stated in the README together with pow_one_sub_bounds.
Statement as written in the source
Lemma pow_one_sub_cvg (x : R) : 0 <= x -> (fun n : nat => (1 - x / n%:R) ^+ n) @ \oo --> expR (- x).