On this page
Escape through a mesh and norms of Gaussian matrices
Imports 15 library modules and 28 external
- GaussianAnalysis.gaussian.measurable_matrix
- GaussianAnalysis.gaussian.normal_integral
- GaussianAnalysis.gaussian.gauss
- GaussianAnalysis.gaussian.gauss_ibp
- GaussianAnalysis.gaussian.gauss_interpolation
- GaussianAnalysis.gaussian.gauss_moments
- GaussianAnalysis.probability.moments
- GaussianAnalysis.matrix.euclidean
- GaussianAnalysis.matrix.opnorm
- GaussianAnalysis.matrix.nets
- GaussianAnalysis.comparison.gauss_rotation
- GaussianAnalysis.comparison.gauss_smoothing
- GaussianAnalysis.comparison.gauss_concentration
- GaussianAnalysis.comparison.slepian
- GaussianAnalysis.comparison.gordon
External: HB.structures, mathcomp.classical.all_ssreflect_compat, mathcomp.algebra.algebraic_hierarchy.ssralg, mathcomp.algebra.numeric_hierarchy.ssrnum, mathcomp.algebra.interval, mathcomp.algebra.matrix, 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
Imported by 7
Required by 9 files of the paper proofs
- extension/Condition/GaussianGap.v
- extension/Condition/GaussianWitness.v
- extension/ConditionKappa/GaussianGap.v
- extension/ConditionKappa/GaussianWitness.v
- extension/Gaussian/FittingError.v
- extension/Gaussian/Subcritical.v
- theories/Gaussian/Symmetric/Reflection.v
- theories/Gordon/EscapeExpectation.v
- theories/Gordon/Processes.v
Let a have law gauss (N * M), so that G = vec_mx a is an N x M matrix of independent standard normal entries, and let g and h have laws gauss N and gauss M. Vectors x of R^M are column vectors 'cV[R]_M, and |x| is frobenius x.
For a nonempty set T of unit vectors of 'cV[R]_M and N > 0, gordon_escape is Gordon's escape theorem: E[inf_(x in T) |G x|] >= E[|g|] - w(T), where w(T) = E[sup_(x in T) <h, x>] is the Gaussian width of T. By Gaussian concentration, inf_(x in T) |G x| is at most E[|g|] - w(T) - u with probability at most expR (- u^2 / 2) (gordon_escape_tail). So when w(T) < E[|g|], the kernel of G misses T with high probability: escape through a mesh. For T the unit sphere, w(T) = E[|h|] (gwidth_sphere), which bounds the smallest singular value of G (gauss_min_singular_mean).
For a second nonempty set Y of unit vectors of 'cV[R]_N, gordon_minmax is Gordon's comparison for the min-max of the bilinear form: E[inf_(x in T) sup_(y in Y) <y, G x>] >= w(Y) - w(T), with w(Y) = E[sup_(y in Y) <g, y>]. Let Y be the unit vectors of the range of an orthogonal projection P != 0 of 'cV[R]_N. Then sup_(y in Y) <y, v> is |P v| (gwidth_range_sphere), so E[inf_(x in T) |P G x|] >= E[|g P|] - w(T) (gordon_projection), with the Gaussian tail of gordon_escape_tail (gordon_projection_tail). Since E[|g A|^2] = |A|^2 (gauss_sqr_mulmx), the Gaussian Poincare inequality gives E[|g P|] >= sqrt (tr P - 1) (gauss_proj_mean_ge). So for M > 0, inf_(|x| = 1) |P G x| is at most sqrt (tr P - 1) - sqrt M - u with probability at most expR (- u^2 / 2) (gauss_proj_singular_tail): the smallest singular value of G seen through P, for instance on the symmetric matrices.
For N, M > 0, E[opnorm G] <= E[|g|] + E[|h|] <= sqrt N + sqrt M (gauss_opnorm_mean, gauss_frobenius_mean_le, gauss_opnorm_mean_sqrt), and opnorm G exceeds E[|g|] + E[|h|] + u with probability at most expR (- u^2 / 2) (gauss_opnorm_tail).
The proofs compare, for finite families xs of unit vectors of 'cV[R]_M and ys of unit vectors of 'cV[R]_N, the matrix process ys t^T *m G *m xs u with the process <g, ys t> + <h, xs u>: by Gordon's inequality for the min-max over u and t (aux_bil_minmax), and by the Sudakov-Fernique inequality for the maximum (bil_aux_max). Nets of T and of the unit spheres (net_exists, unit_sphere_net) pass from finite families to T and to the spheres. The file also proves that gauss n is invariant under x |-> - x (integral_gauss_opp).
unvec k | the pair (i, j) such that mxvec_index i j = k |
fam_ | the matrix whose columns are the vectors xs u |
bil_ | the matrix B such that vec_mx (a *m B) u t is ys t ^T *m vec_mx a *m xs u |
aux_ | the matrix C such that vec_mx (z *m C) u t is <lsubmx z, ys t> + <rsubmx z, xs u> |
gwidth_ | sup_(x in T) <h, x>, for h : 'rV[R]_M |
escape_ | inf_(x in T) |G *m x| |
minmax_ | inf_(x in T) sup_(y in Y) <y, G *m x> |
range_ | the unit vectors y of 'cV[R]_N with P *m y = y |
Main results
| Results | Statement | Used by theories/ |
|---|---|---|
Gordon's escape through a mesh: let G = vec_mx a be an N x M matrix of independent standard normal entries (a of law gauss (N * M)), N > 0, and T a nonempty set of unit vectors of 'cV[R]_M. Then E[inf_(x in T) |G x|] >= E[|g|] - w(T), where w(T) = E[sup_(x in T) <h, x>] is the Gaussian width of T, and inf_(x in T) |G x| <= E[|g|] - w(T) - u has probability at most expR (- u^2 / 2). | Gordon/ | |
For such G with N, M > 0: E[opnorm G] <= E[|g|] + E[|h|] <= sqrt N + sqrt M, and opnorm G >= E[|g|] + E[|h|] + u has probability at most expR (- u^2 / 2). | ||
E[inf_(|x| = 1) |G x|] >= E[|g|] - E[|h|]: the Gaussian width of the unit sphere is E[|h|]. | ||
E[|g|] <= sqrt n for g of law gauss n, and gauss n is invariant under x |-> - x. | Gaussian/ | |
Gordon's comparison for the min-max of the bilinear form: for nonempty sets T and Y of unit vectors of 'cV[R]_M and 'cV[R]_N, E[inf_(x in T) sup_(y in Y) <y, G x>] >= E[sup_(y in Y) <g, y>] - w(T). For an orthogonal projection P != 0 of 'cV[R]_N and Y the unit vectors of its range, E[inf_(x in T) |P G x|] >= E[|g P|] - w(T), with the tail expR (- u^2 / 2) below the mean; E[|g A|^2] = |A|^2 (gauss_sqr_mulmx) and, by the Poincare inequality, E[|g P|] >= sqrt (tr P - 1). So for M > 0, inf_(|x| = 1) |P G x| <= sqrt (tr P - 1) - sqrt M - u has probability at most expR (- u^2 / 2). | ||
For finite families of unit vectors xs u and ys t, Gordon's and the Sudakov-Fernique comparisons of the processes ys_t^T G xs_u and <g, ys_t> + <h, xs_u>; auxT_bilT_minmax is Gordon's comparison with the minimum over the left factor, zs_u^T G vs_t against <g, zs_u> + <h, vs_t>. | Gordon/ |
Declarations82 exported, 9 local
Context {m n : nat}.
forall {m n : nat}, 'I_(m * n) -> 'I_m * 'I_nDefinition unvec (k : 'I_(m * n)) : 'I_m * 'I_n := enum_val (cast_ord (esym (mxvec_cast m n)) k).
The inverse of mxvec_index.
Context {R : realType}.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: minmax_add
forall {R : realType} [p q : nat] (a : 'rV_q.+1) (c : 'rV_p.+1), minmax (\matrix_(u, t) (c 0 u + a 0 t)) = rmax a - rmax (- c)
min_u max_t (c u + a t) = max_t a t + min_u c u.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: minmax_aux
forall {R : realType} [p q : nat] [w : 'rV_(p.+1 * q.+1)] [a : 'rV_q.+1] [c : 'rV_p.+1], (forall (u : 'I_p.+1) (t : 'I_q.+1), w 0 (mxvec_index u t) = c 0 u + a 0 t) -> rmax w = rmax c + rmax a
The largest coordinate of the vector of the c u + a t over all pairs.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: rmax_aux
Context {R : realType} {n : nat}.
forall {R : realType} {n : nat} [f : 'rV_n -> \bar R], measurable_fun [set: 'rV_n] f -> (forall x : 'rV_n, (0%R <= f x)%E) -> (\int[gauss n]_x f (- x)%R)%E = (\int[gauss n]_x f x)%E
Statement as written in the source
Used by 3 declarations in 2 files
- this file: integrable_gauss_opp, integral_gauss_opp
- GaussianAnalysis.comparison.sudakov: gauss_shift_sym
forall {R : realType} {n : nat} [f : 'rV_n -> \bar R], (gauss n).-integrable [set: 'rV_n] f -> (gauss n).-integrable [set: 'rV_n] (fun x : 'rV_n => f (- x))
Statement as written in the source
Used by 1 declaration in 1 file
- this file: integral_minmax_aux
forall {R : realType} {n : nat} [f : 'rV_n -> \bar R], (gauss n).-integrable [set: 'rV_n] f -> (\int[gauss n]_x f (- x)%R)%E = (\int[gauss n]_x f x)%E
Stated in the README together with gauss_frobenius_mean_le.
Statement as written in the source
Used by 3 declarations in 3 files
- GaussianAnalysis.random_matrix.goe_edge: goe_lambda_maxN_mean
- this file: integral_minmax_aux
- GaussianAnalysis.comparison.cgmt: cgmt_lower
Context {R : realType}.
Statement as written in the source
Used by 18 declarations in 4 files
- GaussianAnalysis.matrix.covering: frobenius_mxvec_mx, gopnorm_mean, colmax_sep
- GaussianAnalysis.random_matrix.goe: frobenius_goe_mx
- this file: integrable_escape_inf, minmax_bil_le, gordon_escape_tail, integrable_minmax_sph, minmax_bil_sph_le, escape_proj_lipschitz, integrable_gauss_opnorm, gauss_opnorm_tail
- GaussianAnalysis.comparison.cgmt: nA, cgmt_lower, cgmt_upper, cgmt_escape_tail, cgmt_tail, measurable_escape_inf
Context {R : realType} {n k : nat}.
forall {R : realType} {n k : nat}, ('I_k -> 'cV_n) -> 'M_(n, k)Definition fam_mx (xs : 'I_k -> 'cV[R]_n) : 'M[R]_(n, k) := \matrix_(j, u) xs u j 0.
The matrix whose columns are the xs u.
Used by 13 declarations in 2 files
- GaussianAnalysis.random_matrix.goe_edge: goe_lin_mx
- this file: fam_mxE, minmax_aux, rmax_aux, lsub_fam, rsub_fam, integral_minmax_aux, rsub_fam', integral_rmax_aux, rmax_fam_width, gordon_escape, rmax_net_width, gordon_minmax
forall {R : realType} {n k : nat} (xs : 'I_k -> 'cV_n) (h : 'rV_n) (u : 'I_k), (h *m fam_mx xs) 0 u = mxdot h^T (xs u)
Statement as written in the source
Used by 7 declarations in 2 files
- GaussianAnalysis.random_matrix.goe_edge: goe_form_max_mean
- this file: minmax_aux, rmax_aux, rmax_fam_width, gordon_escape, rmax_net_width, gauss_opnorm_mean
Context {R : realType} {N M k l : nat}. Variables (xs : 'I_k.+1 -> 'cV[R]_M) (ys : 'I_l.+1 -> 'cV[R]_N). Local Notation idx := (@mxvec_index k.+1 l.+1).
forall {R : realType} {N M k l : nat},
('I_k.+1 -> 'cV_M) -> ('I_l.+1 -> 'cV_N) -> 'M_(N * M, k.+1 * l.+1)Definition bil_mx : 'M[R]_(N * M, k.+1 * l.+1) := \matrix_(r, c) (ys (unvec c).2 (unvec r).1 0 * xs (unvec c).1 (unvec r).2 0).
For a of law gauss (N * M), the Gaussian matrix with rows indexed by xs and columns by ys whose entry (u, t) is ys t ^T *m vec_mx a *m xs u.
Used by 11 declarations in 2 files
- this file: bil_mxE, bil_cov, incr_var_bil_aux, bil_aux_max, aux_bil_minmax, minmax_bil_le, gordon_escape, minmax_bil_sph_le, gordon_minmax, gauss_opnorm_mean
- GaussianAnalysis.comparison.cgmt: XY_low
forall {R : realType} {N M k l : nat},
('I_k.+1 -> 'cV_M) -> ('I_l.+1 -> 'cV_N) -> 'M_(N + M, k.+1 * l.+1)Definition aux_mx : 'M[R]_(N + M, k.+1 * l.+1) := col_mx (\matrix_(i, c) ys (unvec c).2 i 0) (\matrix_(j, c) xs (unvec c).1 j 0).
For z of law gauss (N + M), the Gaussian matrix whose entry (u, t) is <lsubmx z, ys t> + <rsubmx z, xs u>.
Used by 12 declarations in 1 file
forall {R : realType} {N M k l : nat} (xs : 'I_k.+1 -> 'cV_M) (ys : 'I_l.+1 -> 'cV_N) (a : 'rV_(N * M)) (u : 'I_k.+1) (t : 'I_l.+1), vec_mx (a *m bil_mx xs ys) u t = mxdot (ys t) (vec_mx a *m xs u)
Statement as written in the source
Used by 4 declarations in 2 files
- this file: minmax_bil_le, minmax_bil_sph_le, gauss_opnorm_mean
- GaussianAnalysis.comparison.cgmt: XY_low
forall {R : realType} {N M k l : nat} (xs : 'I_k.+1 -> 'cV_M) (ys : 'I_l.+1 -> 'cV_N) (z : 'rV_(N + M)) (u : 'I_k.+1) (t : 'I_l.+1), vec_mx (z *m aux_mx xs ys) u t = mxdot (lsubmx z)^T (ys t) + mxdot (rsubmx z)^T (xs u)
Statement as written in the source
Used by 2 declarations in 1 file
- this file: minmax_aux, rmax_aux
forall {R : realType} {N M k l : nat} (xs : 'I_k.+1 -> 'cV_M) (ys : 'I_l.+1 -> 'cV_N) (u : 'I_k.+1) (t : 'I_l.+1) (v : 'I_k.+1) (s : 'I_l.+1), ((bil_mx xs ys)^T *m bil_mx xs ys) (mxvec_index u t) (mxvec_index v s) = mxdot (ys t) (ys s) * mxdot (xs u) (xs v)
Statement as written in the source
Used by 2 declarations in 2 files
- this file: incr_var_bil_aux
- GaussianAnalysis.comparison.cgmt: XY_low
forall {R : realType} {N M k l : nat} (xs : 'I_k.+1 -> 'cV_M) (ys : 'I_l.+1 -> 'cV_N) (u : 'I_k.+1) (t : 'I_l.+1) (v : 'I_k.+1) (s : 'I_l.+1), ((aux_mx xs ys)^T *m aux_mx xs ys) (mxvec_index u t) (mxvec_index v s) = mxdot (ys t) (ys s) + mxdot (xs u) (xs v)
Statement as written in the source
Used by 1 declaration in 1 file
- this file: incr_var_bil_aux
forall {R : realType} {N M k l : nat} (xs : 'I_k.+1 -> 'cV_M) (ys : 'I_l.+1 -> 'cV_N) (z : 'rV_(N + M)), minmax (vec_mx (z *m aux_mx xs ys)) = rmax (lsubmx z *m fam_mx ys) - rmax (- rsubmx z *m fam_mx xs)
Statement as written in the source
Used by 1 declaration in 1 file
- this file: integral_minmax_aux
forall {R : realType} {N M k l : nat} (xs : 'I_k.+1 -> 'cV_M) (ys : 'I_l.+1 -> 'cV_N) (z : 'rV_(N + M)), rmax (z *m aux_mx xs ys) = rmax (rsubmx z *m fam_mx xs) + rmax (lsubmx z *m fam_mx ys)
Statement as written in the source
Used by 1 declaration in 1 file
- this file: integral_rmax_aux
Used by 2 declarations in 1 file
- this file: integral_minmax_aux, integral_rmax_aux
Used by 1 declaration in 1 file
- this file: integral_minmax_aux
forall {R : realType} {N M k l : nat} (xs : 'I_k.+1 -> 'cV_M) (ys : 'I_l.+1 -> 'cV_N), \int[gauss (N + M)]_z minmax (vec_mx (z *m aux_mx xs ys)) = \int[gauss N]_g rmax (g *m fam_mx ys) - \int[gauss M]_h rmax (h *m fam_mx xs)
Statement as written in the source
Used by 2 declarations in 1 file
- this file: gordon_escape, gordon_minmax
Used by 1 declaration in 1 file
- this file: integral_rmax_aux
forall {R : realType} {N M k l : nat} (xs : 'I_k.+1 -> 'cV_M) (ys : 'I_l.+1 -> 'cV_N), \int[gauss (N + M)]_z rmax (z *m aux_mx xs ys) = \int[gauss M]_h rmax (h *m fam_mx xs) + \int[gauss N]_g rmax (g *m fam_mx ys)
Statement as written in the source
Used by 1 declaration in 1 file
- this file: gauss_opnorm_mean
Hypothesis xs1 : forall u, frobenius (xs u) = 1. Hypothesis ys1 : forall t, frobenius (ys t) = 1.
Used by 2 declarations in 1 file
- this file: bil_aux_max, aux_bil_minmax
Used by 2 declarations in 1 file
- this file: incr_var_bil_aux, aux_bil_minmax
forall {R : realType} {N M k l : nat} [xs : 'I_k.+1 -> 'cV_M] [ys : 'I_l.+1 -> 'cV_N], (forall u : 'I_k.+1, frobenius (xs u) = 1) -> (forall t : 'I_l.+1, frobenius (ys t) = 1) -> forall (u : 'I_k.+1) (t : 'I_l.+1) (v : 'I_k.+1) (s : 'I_l.+1), incr_var (aux_mx xs ys) (mxvec_index u t) (mxvec_index v s) - incr_var (bil_mx xs ys) (mxvec_index u t) (mxvec_index v s) = 2 * (1 - mxdot (ys t) (ys s)) * (1 - mxdot (xs u) (xs v))
Statement as written in the source
Used by 2 declarations in 1 file
- this file: bil_aux_max, aux_bil_minmax
forall {R : realType} {N M k l : nat} [xs : 'I_k.+1 -> 'cV_M] [ys : 'I_l.+1 -> 'cV_N], (forall u : 'I_k.+1, frobenius (xs u) = 1) -> (forall t : 'I_l.+1, frobenius (ys t) = 1) -> (\int[gauss (N * M)]_a (rmax (a *m bil_mx xs ys))%:E <= \int[gauss (N + M)]_z (rmax (z *m aux_mx xs ys))%:E)%E
The Sudakov-Fernique comparison of the two processes.
Stated in the README together with aux_bil_minmax.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: gauss_opnorm_mean
forall {R : realType} {N M k l : nat} [xs : 'I_k.+1 -> 'cV_M] [ys : 'I_l.+1 -> 'cV_N], (forall u : 'I_k.+1, frobenius (xs u) = 1) -> (forall t : 'I_l.+1, frobenius (ys t) = 1) -> (\int[gauss (N + M)]_z (minmax (vec_mx (z *m aux_mx xs ys)))%:E <= \int[gauss (N * M)]_a (minmax (vec_mx (a *m bil_mx xs ys)))%:E)%E
Gordon's comparison of the two processes.
For finite families of unit vectors xs u and ys t, Gordon's and the Sudakov-Fernique comparisons of the processes ys_t^T G xs_u and <g, ys_t> + <h, xs_u>; auxT_bilT_minmax is Gordon's comparison with the minimum over the left factor, zs_u^T G vs_t against <g, zs_u> + <h, vs_t>.
theories/ by: Gordon/Processes Statement as written in the source
Used by 2 declarations in 1 file
- this file: gordon_escape, gordon_minmax
Context {R : realType} {N M k l : nat}. Variables (zs : 'I_k.+1 -> 'cV[R]_N) (vs : 'I_l.+1 -> 'cV[R]_M). Local Notation idx := (@mxvec_index k.+1 l.+1).
forall {R : realType} {N M k l : nat},
('I_k.+1 -> 'cV_N) -> ('I_l.+1 -> 'cV_M) -> 'M_(N * M, k.+1 * l.+1)Definition bilT_mx : 'M[R]_(N * M, k.+1 * l.+1) := \matrix_(r, c) (zs (unvec c).1 (unvec r).1 0 * vs (unvec c).2 (unvec r).2 0).
The process (u, t) |-> zs u ^T *m vec_mx a *m vs t, with the minimum over the left factor, and its auxiliary process.
Used by 5 declarations in 2 files
- this file: bilT_mxE, bilT_cov, incr_var_bilT_auxT, auxT_bilT_minmax
- GaussianAnalysis.comparison.cgmt: XY_up
forall {R : realType} {N M k l : nat},
('I_k.+1 -> 'cV_N) -> ('I_l.+1 -> 'cV_M) -> 'M_(N + M, k.+1 * l.+1)Definition auxT_mx : 'M[R]_(N + M, k.+1 * l.+1) := col_mx (\matrix_(i, c) zs (unvec c).1 i 0) (\matrix_(j, c) vs (unvec c).2 j 0).
Used by 4 declarations in 1 file
- this file: auxT_mxE, auxT_cov, incr_var_bilT_auxT, auxT_bilT_minmax
forall {R : realType} {N M k l : nat} (zs : 'I_k.+1 -> 'cV_N) (vs : 'I_l.+1 -> 'cV_M) (a : 'rV_(N * M)) (u : 'I_k.+1) (t : 'I_l.+1), vec_mx (a *m bilT_mx zs vs) u t = mxdot (zs u) (vec_mx a *m vs t)
Statement as written in the source
Used by 1 declaration in 1 file
- GaussianAnalysis.comparison.cgmt: XY_up
forall {R : realType} {N M k l : nat} (zs : 'I_k.+1 -> 'cV_N) (vs : 'I_l.+1 -> 'cV_M) (u : 'I_k.+1) (t : 'I_l.+1) (v : 'I_k.+1) (s : 'I_l.+1), ((bilT_mx zs vs)^T *m bilT_mx zs vs) (mxvec_index u t) (mxvec_index v s) = mxdot (zs u) (zs v) * mxdot (vs t) (vs s)
Statement as written in the source
Used by 2 declarations in 2 files
- this file: incr_var_bilT_auxT
- GaussianAnalysis.comparison.cgmt: XY_up
forall {R : realType} {N M k l : nat} (zs : 'I_k.+1 -> 'cV_N) (vs : 'I_l.+1 -> 'cV_M) (u : 'I_k.+1) (t : 'I_l.+1) (v : 'I_k.+1) (s : 'I_l.+1), ((auxT_mx zs vs)^T *m auxT_mx zs vs) (mxvec_index u t) (mxvec_index v s) = mxdot (zs u) (zs v) + mxdot (vs t) (vs s)
Statement as written in the source
Used by 1 declaration in 1 file
- this file: incr_var_bilT_auxT
Hypothesis zs1 : forall u, frobenius (zs u) = 1. Hypothesis vs1 : forall t, frobenius (vs t) = 1.
Used by 1 declaration in 1 file
- this file: auxT_bilT_minmax
Used by 2 declarations in 1 file
- this file: incr_var_bilT_auxT, auxT_bilT_minmax
forall {R : realType} {N M k l : nat} [zs : 'I_k.+1 -> 'cV_N] [vs : 'I_l.+1 -> 'cV_M], (forall u : 'I_k.+1, frobenius (zs u) = 1) -> (forall t : 'I_l.+1, frobenius (vs t) = 1) -> forall (u : 'I_k.+1) (t : 'I_l.+1) (v : 'I_k.+1) (s : 'I_l.+1), incr_var (auxT_mx zs vs) (mxvec_index u t) (mxvec_index v s) - incr_var (bilT_mx zs vs) (mxvec_index u t) (mxvec_index v s) = 2 * (1 - mxdot (zs u) (zs v)) * (1 - mxdot (vs t) (vs s))
Statement as written in the source
Used by 1 declaration in 1 file
- this file: auxT_bilT_minmax
forall {R : realType} {N M k l : nat} [zs : 'I_k.+1 -> 'cV_N] [vs : 'I_l.+1 -> 'cV_M], (forall u : 'I_k.+1, frobenius (zs u) = 1) -> (forall t : 'I_l.+1, frobenius (vs t) = 1) -> (\int[gauss (N + M)]_z (minmax (vec_mx (z *m auxT_mx zs vs)))%:E <= \int[gauss (N * M)]_a (minmax (vec_mx (a *m bilT_mx zs vs)))%:E)%E
Gordon's comparison of the two processes, with the minimum over u.
Stated in the README together with aux_bil_minmax.
Context {R : realType} {M : nat}. Variable T : set 'cV[R]_M. Hypothesis T1 : forall x, T x -> frobenius x = 1. Hypothesis T0 : T !=set0.
forall {R : realType} {M : nat}, set 'cV_M -> 'rV_M -> RDefinition gwidth_fun (h : 'rV[R]_M) : R := sup [set mxdot h^T x | x in T].
sup_(x in T) <h, x>, whose mean for h of law gauss M is the Gaussian width of T.
Used by 21 declarations in 1 file
- this file: gwidth_ge, gwidth_le, gwidth_lipschitz, gwidth_norm, integrable_gwidth, rmax_fam_width, gordon_escape, gordon_escape_tail, minmax_sph, width_bound, minmax_sph_le, minmax_sph_ge, minmax_bil_sph_le, rmax_net_width, gordon_minmax, gwidth_range_sphere, gordon_projection, gordon_projection_tail, gwidth_sphere, gauss_min_singular_mean, gauss_proj_singular_tail
Used by 3 declarations in 1 file
- this file: gwidth_ge, gwidth_lipschitz, gwidth_norm
forall {R : realType} {M : nat} [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> forall (h : 'rV_M) [x : 'cV_M], T x -> mxdot h^T x <= gwidth_fun T h
Statement as written in the source
Lemma gwidth_ge h x : T x -> mxdot h^T x <= gwidth_fun h.
Used by 6 declarations in 1 file
forall {R : realType} {M : nat} [T : set 'cV_M], T !=set0 -> forall [h : 'rV_M] [c : join_Num_NumDomain_between_GRing_ComNzRing_and_Order_Preorder R], (forall x : 'cV_M, T x -> mxdot h^T x <= c) -> gwidth_fun T h <= c
Statement as written in the source
Lemma gwidth_le h c : (forall x, T x -> mxdot h^T x <= c) -> gwidth_fun h <= c.
Used by 5 declarations in 1 file
- this file: gwidth_lipschitz, gwidth_norm, rmax_net_width, gwidth_range_sphere, gwidth_sphere
forall {R : realType} {M : nat} [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> forall h h' : 'rV_M, `|gwidth_fun T h - gwidth_fun T h'| <= 1 * frobenius (h - h')
Statement as written in the source
Lemma gwidth_lipschitz h h' : `|gwidth_fun h - gwidth_fun h'| <= 1 * frobenius (h - h').
Used by 3 declarations in 1 file
- this file: integrable_gwidth, minmax_sph_lipschitz, minmax_bil_sph_le
forall {R : realType} {M : nat} [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> forall h : 'rV_M, `|gwidth_fun T h| <= frobenius h
Statement as written in the source
Lemma gwidth_norm h : `|gwidth_fun h| <= frobenius h.
Used by 1 declaration in 1 file
- this file: width_bound
forall {R : realType} {M : nat}, set 'cV_M -> forall [N : nat], 'M_(N, M) -> R
Definition escape_inf N (G : 'M[R]_(N, M)) : R := inf [set frobenius (G *m x) | x in T].
inf_(x in T) |G x|.
Used by 30 declarations in 3 files
- this file: escape_inf_le, escape_inf_ge, escape_inf_lipschitz, escape_inf_ge0, escape_inf_norm, integrable_escape_inf, minmax_bil_le, gordon_escape, gordon_escape_tail, minmax_sph_range, gordon_projection, escape_proj_lipschitz, measurable_escape_proj, gordon_projection_tail, gauss_min_singular_mean, gauss_proj_singular_tail
- GaussianAnalysis.comparison.cgmt: escape_inf_lip, escape_inf_minimax, low_X, cgmt_lower, up_X, cgmt_upper, cgmt_escape_tail, cgmt_tail, measurable_escape_inf, escape_inf_tr_set, cgmt_zero_tail
- GaussianAnalysis.comparison.cone_escape: mPhi, cone_escape_zero_tail, cone_escape_lower_tail
forall {R : realType} {M : nat} [T : set 'cV_M] [N : nat] (G : 'M_(N, M)) [x : 'cV_M], T x -> escape_inf T G <= frobenius (G *m x)
Statement as written in the source
Lemma escape_inf_le N (G : 'M[R]_(N, M)) x : T x -> escape_inf G <= frobenius (G *m x).
Used by 4 declarations in 2 files
- this file: escape_inf_lipschitz, escape_inf_norm
- GaussianAnalysis.comparison.cgmt: escape_inf_lip, escape_inf_minimax
forall {R : realType} {M : nat} [T : set 'cV_M], T !=set0 -> forall [N : nat] [G : 'M_(N, M)] [c : R], (forall x : 'cV_M, T x -> c <= frobenius (G *m x)) -> c <= escape_inf T G
Statement as written in the source
Lemma escape_inf_ge N (G : 'M[R]_(N, M)) c : (forall x, T x -> c <= frobenius (G *m x)) -> c <= escape_inf G.
Used by 5 declarations in 2 files
- this file: escape_inf_lipschitz, escape_inf_ge0, minmax_bil_le
- GaussianAnalysis.comparison.cgmt: escape_inf_lip, low_X
forall {R : realType} {M : nat} [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> forall [N : nat] (G G' : 'M_(N, M)), `|escape_inf T G - escape_inf T G'| <= 1 * frobenius (G - G')
Statement as written in the source
Lemma escape_inf_lipschitz N (G G' : 'M[R]_(N, M)) : `|escape_inf G - escape_inf G'| <= 1 * frobenius (G - G').
Used by 3 declarations in 1 file
- this file: integrable_escape_inf, gordon_escape_tail, escape_proj_lipschitz
forall {R : realType} {M : nat} [T : set 'cV_M], T !=set0 -> forall [N : nat] (G : 'M_(N, M)), 0 <= escape_inf T G
Statement as written in the source
Lemma escape_inf_ge0 N (G : 'M[R]_(N, M)) : 0 <= escape_inf G.
Used by 1 declaration in 1 file
- this file: escape_inf_norm
forall {R : realType} {M : nat} [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> forall [N : nat] (G : 'M_(N, M)), `|escape_inf T G| <= frobenius G
Statement as written in the source
Lemma escape_inf_norm N (G : 'M[R]_(N, M)) : `|escape_inf G| <= frobenius G.
Context {R : realType} {N : nat}.
forall {R : realType} {N : nat} [l : nat] [ys : 'I_l.+1 -> 'cV_N] [eta : R] (v : 'cV_N), (forall y : 'cV_N, frobenius y = 1 -> exists t : 'I_l.+1, frobenius (y - ys t) <= eta) -> (1 - eta) * frobenius v <= rmax (\row_t mxdot v (ys t))
If the family ys meets every ball of radius eta centered on the unit sphere, the largest of the <v, ys t> is at least (1 - eta) |v|.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: gordon_escape
forall {R : realType} {N : nat} [Ns : seq 'cV_N] [y0 : 'cV_N] [eta : R], is_net (unit_sphere (n:=N)) (y0 :: Ns) eta -> forall [y : 'cV_N], frobenius y = 1 -> exists t : 'I_(size Ns).+1, frobenius (y - (y0 :: Ns)`_t) <= eta
An eta-net of the unit sphere, as a family indexed by an ordinal.
Statement as written in the source
Lemma net_family (Ns : seq 'cV[R]_N) (y0 : 'cV[R]_N) (eta : R) : is_net (@unit_sphere R N) (y0 :: Ns) eta -> forall y, frobenius y = 1 -> exists t : 'I_(size Ns).+1, frobenius (y - nth 0 (y0 :: Ns) t) <= eta.
Used by 1 declaration in 1 file
- this file: gordon_escape
Context {R : realType} {N M : nat}. Variable T : set 'cV[R]_M. Hypothesis T1 : forall x, T x -> frobenius x = 1. Hypothesis T0 : T !=set0.
forall {R : realType} {M : nat} [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> (gauss M).-integrable [set: 'rV_M] (EFin \o gwidth_fun T)
Statement as written in the source
Lemma integrable_gwidth : (gauss M).-integrable [set: 'rV[R]_M] (EFin \o gwidth_fun T).
Used by 2 declarations in 1 file
- this file: gordon_escape, gordon_minmax
forall {R : realType} {N M : nat} [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> (gauss (N * M)).-integrable [set: 'rV_(N * M)] (EFin \o (fun a : 'rV_(N * M) => escape_inf T (vec_mx a : 'M_(N, M))))
Statement as written in the source
Lemma integrable_escape_inf : (gauss (N * M)).-integrable [set: 'rV[R]_(N * M)] (EFin \o (fun a => escape_inf T (vec_mx a : 'M[R]_(N, M)))).
Used by 1 declaration in 1 file
- this file: gordon_escape
forall {R : realType} {N M : nat} [T : set 'cV_M], T !=set0 -> forall [k l : nat] [xs : 'I_k.+1 -> 'cV_M] [ys : 'I_l.+1 -> 'cV_N] [delta : R] (a : 'rV_(N * M)), (forall t : 'I_l.+1, frobenius (ys t) = 1) -> (forall x : 'cV_M, T x -> exists u : 'I_k.+1, frobenius (x - xs u) <= delta) -> minmax (vec_mx (a *m bil_mx xs ys)) <= escape_inf T (vec_mx a : 'M_(N, M)) + delta * frobenius a
Statement as written in the source
Lemma minmax_bil_le k l (xs : 'I_k.+1 -> 'cV[R]_M) (ys : 'I_l.+1 -> 'cV[R]_N) (delta : R) (a : 'rV[R]_(N * M)) : (forall t, frobenius (ys t) = 1) -> (forall x, T x -> exists u, frobenius (x - xs u) <= delta) -> minmax (vec_mx (a *m bil_mx xs ys)) <= escape_inf T (vec_mx a : 'M[R]_(N, M)) + delta * frobenius a.
Used by 1 declaration in 1 file
- this file: gordon_escape
forall {R : realType} {M : nat} [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> forall [k : nat] [xs : 'I_k.+1 -> 'cV_M] (h : 'rV_M), (forall u : 'I_k.+1, T (xs u)) -> rmax (h *m fam_mx xs) <= gwidth_fun T h
Statement as written in the source
Lemma rmax_fam_width k (xs : 'I_k.+1 -> 'cV[R]_M) (h : 'rV[R]_M) : (forall u, T (xs u)) -> rmax (h *m fam_mx xs) <= gwidth_fun T h.
Used by 2 declarations in 1 file
- this file: gordon_escape, gordon_minmax
forall {R : realType} {N M : nat} [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> (0 < N)%N -> \int[gauss N]_g frobenius g - \int[gauss M]_h gwidth_fun T h <= \int[gauss (N * M)]_a escape_inf T (vec_mx a : 'M_(N, M))
Gordon's escape theorem: for the Gaussian matrix vec_mx a of size N x M, E[inf_(x in T) |vec_mx a *m x|] >= E[|g|] - E[sup_(x in T) <h, x>].
Gordon's escape through a mesh: let G = vec_mx a be an N x M matrix of independent standard normal entries (a of law gauss (N * M)), N > 0, and T a nonempty set of unit vectors of 'cV[R]_M. Then E[inf_(x in T) |G x|] >= E[|g|] - w(T), where w(T) = E[sup_(x in T) <h, x>] is the Gaussian width of T, and inf_(x in T) |G x| <= E[|g|] - w(T) - u has probability at most expR (- u^2 / 2).
theories/ by: Gordon/EscapeExpectation Statement as written in the source
Theorem gordon_escape : (0 < N)%N -> \int[gauss N]_g frobenius g - \int[gauss M]_h gwidth_fun T h <= \int[gauss (N * M)]_a escape_inf T (vec_mx a : 'M[R]_(N, M)).
Used by 2 declarations in 1 file
- this file: gordon_escape_tail, gauss_min_singular_mean
forall {R : realType} {N M : nat} [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> forall [u : R], (0 < N)%N -> 0 <= u -> (gauss (N * M) [set a | (escape_inf T (vec_mx a : 'M_(N, M)) <= \int[gauss N]_g frobenius g - \int[gauss M]_h gwidth_fun T h - u)%R] <= (expR (- u ^+ 2 / 2))%:E)%E
Escape through a mesh: inf_(x in T) |G x| falls below E[|g|] - E[sup_(x in T) <h, x>] - u with probability at most expR (- u^2 / 2).
Stated in the README together with gordon_escape.
Statement as written in the source
Theorem gordon_escape_tail (u : R) : (0 < N)%N -> 0 <= u -> (gauss (N * M) [set a | escape_inf T (vec_mx a : 'M[R]_(N, M)) <= \int[gauss N]_g frobenius g - \int[gauss M]_h gwidth_fun T h - u]%R <= (expR (- u ^+ 2 / 2))%:E)%E.
Context {R : realType} {N M : nat}. Variables (T : set 'cV[R]_M) (Y : set 'cV[R]_N). Hypotheses (T1 : forall x, T x -> frobenius x = 1) (T0 : T !=set0). Hypotheses (Y1 : forall y, Y y -> frobenius y = 1) (Y0 : Y !=set0).
forall {R : realType} {N M : nat}, set 'cV_M -> set 'cV_N -> 'M_(N, M) -> RDefinition minmax_sph (G : 'M[R]_(N, M)) : R := inf [set gwidth_fun Y (G *m x)^T | x in T].
inf_(x in T) sup_(y in Y) <y, G x>.
Used by 8 declarations in 1 file
Let width_bound (v : 'rV[R]_N) : `|gwidth_fun Y v| <= frobenius v.
Used by 1 declaration in 1 file
- this file: minmax_sph_le
forall {R : realType} {N M : nat} [T : set 'cV_M] [Y : set 'cV_N], (forall x : 'cV_M, T x -> frobenius x = 1) -> (forall y : 'cV_N, Y y -> frobenius y = 1) -> Y !=set0 -> forall (G : 'M_(N, M)) [x : 'cV_M], T x -> minmax_sph T Y G <= gwidth_fun Y (G *m x)^T
Statement as written in the source
Lemma minmax_sph_le (G : 'M[R]_(N, M)) x : T x -> minmax_sph G <= gwidth_fun Y (G *m x)^T.
Used by 1 declaration in 1 file
- this file: minmax_sph_lipschitz
forall {R : realType} {N M : nat} [T : set 'cV_M] [Y : set 'cV_N], T !=set0 -> forall [G : 'M_(N, M)] [c : R], (forall x : 'cV_M, T x -> c <= gwidth_fun Y (G *m x)^T) -> c <= minmax_sph T Y G
Statement as written in the source
Lemma minmax_sph_ge (G : 'M[R]_(N, M)) c : (forall x, T x -> c <= gwidth_fun Y (G *m x)^T) -> c <= minmax_sph G.
Used by 2 declarations in 1 file
- this file: minmax_sph_lipschitz, minmax_bil_sph_le
forall {R : realType} {N M : nat} [T : set 'cV_M] [Y : set 'cV_N], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> (forall y : 'cV_N, Y y -> frobenius y = 1) -> Y !=set0 -> forall G G' : 'M_(N, M), `|minmax_sph T Y G - minmax_sph T Y G'| <= 1 * frobenius (G - G')
Statement as written in the source
Lemma minmax_sph_lipschitz (G G' : 'M[R]_(N, M)) : `|minmax_sph G - minmax_sph G'| <= 1 * frobenius (G - G').
Used by 1 declaration in 1 file
- this file: integrable_minmax_sph
forall {R : realType} {N M : nat} [T : set 'cV_M] [Y : set 'cV_N], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> (forall y : 'cV_N, Y y -> frobenius y = 1) -> Y !=set0 -> (gauss (N * M)).-integrable [set: 'rV_(N * M)] (EFin \o (fun a : 'rV_(N * M) => minmax_sph T Y (vec_mx a : 'M_(N, M))))
Statement as written in the source
Lemma integrable_minmax_sph : (gauss (N * M)).-integrable [set: 'rV[R]_(N * M)] (EFin \o (fun a => minmax_sph (vec_mx a : 'M[R]_(N, M)))).
Used by 1 declaration in 1 file
- this file: gordon_minmax
forall {R : realType} {N M : nat} [T : set 'cV_M] [Y : set 'cV_N], T !=set0 -> (forall y : 'cV_N, Y y -> frobenius y = 1) -> Y !=set0 -> forall [k l : nat] [xs : 'I_k.+1 -> 'cV_M] [ys : 'I_l.+1 -> 'cV_N] [delta : R] (a : 'rV_(N * M)), (forall t : 'I_l.+1, Y (ys t)) -> (forall x : 'cV_M, T x -> exists u : 'I_k.+1, frobenius (x - xs u) <= delta) -> minmax (vec_mx (a *m bil_mx xs ys)) <= minmax_sph T Y (vec_mx a : 'M_(N, M)) + delta * frobenius a
Statement as written in the source
Lemma minmax_bil_sph_le k l (xs : 'I_k.+1 -> 'cV[R]_M) (ys : 'I_l.+1 -> 'cV[R]_N) (delta : R) (a : 'rV[R]_(N * M)) : (forall t, Y (ys t)) -> (forall x, T x -> exists u, frobenius (x - xs u) <= delta) -> minmax (vec_mx (a *m bil_mx xs ys)) <= minmax_sph (vec_mx a : 'M[R]_(N, M)) + delta * frobenius a.
Used by 1 declaration in 1 file
- this file: gordon_minmax
forall {R : realType} {N : nat} [Y : set 'cV_N], Y !=set0 -> forall [l : nat] [ys : 'I_l.+1 -> 'cV_N] [eta : R] (g : 'rV_N), (forall y : 'cV_N, Y y -> exists t : 'I_l.+1, frobenius (y - ys t) <= eta) -> gwidth_fun Y g - eta * frobenius g <= rmax (g *m fam_mx ys)
If ys meets every ball of radius eta centered in Y, the largest of the <g, ys t> is at least sup_(y in Y) <g, y> - eta |g|.
Statement as written in the source
Lemma rmax_net_width l (ys : 'I_l.+1 -> 'cV[R]_N) (eta : R) (g : 'rV[R]_N) : (forall y, Y y -> exists t, frobenius (y - ys t) <= eta) -> gwidth_fun Y g - eta * frobenius g <= rmax (g *m fam_mx ys).
Used by 1 declaration in 1 file
- this file: gordon_minmax
forall {R : realType} {N M : nat} [T : set 'cV_M] [Y : set 'cV_N], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> (forall y : 'cV_N, Y y -> frobenius y = 1) -> Y !=set0 -> \int[gauss N]_g gwidth_fun Y g - \int[gauss M]_h gwidth_fun T h <= \int[gauss (N * M)]_a minmax_sph T Y (vec_mx a : 'M_(N, M))
Gordon's comparison for two sets of unit vectors: for the Gaussian matrix vec_mx a of size N x M, E[inf_(x in T) sup_(y in Y) <y, G x>] >= E[sup_(y in Y) <g, y>] - E[sup_(x in T) <h, x>].
Gordon's comparison for the min-max of the bilinear form: for nonempty sets T and Y of unit vectors of 'cV[R]_M and 'cV[R]_N, E[inf_(x in T) sup_(y in Y) <y, G x>] >= E[sup_(y in Y) <g, y>] - w(T). For an orthogonal projection P != 0 of 'cV[R]_N and Y the unit vectors of its range, E[inf_(x in T) |P G x|] >= E[|g P|] - w(T), with the tail expR (- u^2 / 2) below the mean; E[|g A|^2] = |A|^2 (gauss_sqr_mulmx) and, by the Poincare inequality, E[|g P|] >= sqrt (tr P - 1). So for M > 0, inf_(|x| = 1) |P G x| <= sqrt (tr P - 1) - sqrt M - u has probability at most expR (- u^2 / 2).
Statement as written in the source
Theorem gordon_minmax : \int[gauss N]_g gwidth_fun Y g - \int[gauss M]_h gwidth_fun T h <= \int[gauss (N * M)]_a minmax_sph (vec_mx a : 'M[R]_(N, M)).
Used by 1 declaration in 1 file
- this file: gordon_projection
Context {R : realType} {N M : nat}. Variable P : 'M[R]_N. Hypotheses (Psym : P^T = P) (Pid : P *m P = P) (P0 : P != 0). Variable T : set 'cV[R]_M. Hypotheses (T1 : forall x, T x -> frobenius x = 1) (T0 : T !=set0).
forall {R : realType} {N : nat}, 'M_N -> set 'cV_N
Definition range_sphere : set 'cV[R]_N := [set y | frobenius y = 1 /\ P *m y = y].
The unit vectors of the range of the orthogonal projection P.
Used by 4 declarations in 1 file
- this file: range_sphere0, gwidth_range_sphere, minmax_sph_range, gordon_projection
forall {R : realType} {N : nat} [P : 'M_N] (g : 'rV_N) [y : 'cV_N], P *m y = y -> mxdot g^T y = mxdot (g *m P)^T y
Statement as written in the source
Used by 1 declaration in 1 file
- this file: gwidth_range_sphere
forall {R : realType} {N : nat} [P : 'M_N], P^T = P -> P *m P = P -> forall [m : nat] (A : 'M_(N, m)), frobenius (P *m A) <= frobenius A
Statement as written in the source
Used by 2 declarations in 1 file
- this file: escape_proj_lipschitz, gauss_proj_mean_ge
forall {R : realType} {N : nat} [P : 'M_N], P *m P = P -> P != 0 -> range_sphere P !=set0
Statement as written in the source
Lemma range_sphere0 : range_sphere !=set0.
Used by 2 declarations in 1 file
- this file: gwidth_range_sphere, gordon_projection
forall {R : realType} {N : nat} [P : 'M_N], P^T = P -> P *m P = P -> P != 0 -> forall g : 'rV_N, gwidth_fun (range_sphere P) g = frobenius (g *m P)
Statement as written in the source
Lemma gwidth_range_sphere (g : 'rV[R]_N) : gwidth_fun range_sphere g = frobenius (g *m P).
Used by 2 declarations in 1 file
- this file: minmax_sph_range, gordon_projection
forall {R : realType} {N M : nat} [P : 'M_N], P^T = P -> P *m P = P -> P != 0 -> forall (T : set 'cV_M) (G : 'M_(N, M)), minmax_sph T (range_sphere P) G = escape_inf T (P *m G)
Statement as written in the source
Lemma minmax_sph_range (G : 'M[R]_(N, M)) : minmax_sph T range_sphere G = escape_inf T (P *m G).
Used by 1 declaration in 1 file
- this file: gordon_projection
forall {R : realType} {N M : nat} [P : 'M_N], P^T = P -> P *m P = P -> P != 0 -> forall [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> \int[gauss N]_g frobenius (g *m P) - \int[gauss M]_h gwidth_fun T h <= \int[gauss (N * M)]_a escape_inf T (P *m vec_mx a : 'M_(N, M))
Gordon's comparison for P G: E[inf_(x in T) |P G x|] >= E[|g P|] - w(T).
Stated in the README together with gordon_minmax.
Statement as written in the source
Theorem gordon_projection : \int[gauss N]_g frobenius (g *m P) - \int[gauss M]_h gwidth_fun T h <= \int[gauss (N * M)]_a escape_inf T (P *m vec_mx a : 'M[R]_(N, M)).
Used by 1 declaration in 1 file
- this file: gordon_projection_tail
forall {R : realType} {N M : nat} [P : 'M_N], P^T = P -> P *m P = P -> forall [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> forall a a' : 'rV_(N * M), `|escape_inf T (P *m vec_mx a : 'M_(N, M)) - escape_inf T (P *m vec_mx a' : 'M_(N, M))| <= 1 * frobenius (a - a')
Statement as written in the source
Lemma escape_proj_lipschitz (a a' : 'rV[R]_(N * M)) : `|escape_inf T (P *m vec_mx a : 'M[R]_(N, M)) - escape_inf T (P *m vec_mx a' : 'M[R]_(N, M))| <= 1 * frobenius (a - a').
Used by 2 declarations in 1 file
- this file: measurable_escape_proj, gordon_projection_tail
forall {R : realType} {N M : nat} [P : 'M_N], P^T = P -> P *m P = P -> forall [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> forall [A : set R], 'measurable A -> (measure_matrix_display default_measure_display).-measurable ((fun a : 'rV_(N * M) => escape_inf T (P *m vec_mx a : 'M_(N, M))) @^-1` A)
Statement as written in the source
Lemma measurable_escape_proj (A : set R) : measurable A -> measurable ((fun a : 'rV[R]_(N * M) => escape_inf T (P *m vec_mx a : 'M[R]_(N, M))) @^-1` A).
Used by 2 declarations in 1 file
- this file: gordon_projection_tail, gauss_proj_singular_tail
forall {R : realType} {N M : nat} [P : 'M_N], P^T = P -> P *m P = P -> P != 0 -> forall [T : set 'cV_M], (forall x : 'cV_M, T x -> frobenius x = 1) -> T !=set0 -> forall [u : R], 0 <= u -> (gauss (N * M) [set a | (escape_inf T (P *m vec_mx a : 'M_(N, M)) <= \int[gauss N]_g frobenius (g *m P) - \int[gauss M]_h gwidth_fun T h - u)%R] <= (expR (- u ^+ 2 / 2))%:E)%E
Stated in the README together with gordon_minmax.
Statement as written in the source
Theorem gordon_projection_tail (u : R) : 0 <= u -> (gauss (N * M) [set a | escape_inf T (P *m vec_mx a : 'M[R]_(N, M)) <= \int[gauss N]_g frobenius (g *m P) - \int[gauss M]_h gwidth_fun T h - u]%R <= (expR (- u ^+ 2 / 2))%:E)%E.
Used by 1 declaration in 1 file
- this file: gauss_proj_singular_tail
forall [T : eqType] (d : T) [x0 : T] [s : seq T] [y : T], y \in x0 :: s -> exists t : 'I_(size s).+1, nth d (x0 :: s) t = y
Statement as written in the source
Lemma seq_index (T : eqType) (d x0 : T) (s : seq T) y : y \in x0 :: s -> exists t : 'I_(size s).+1, nth d (x0 :: s) t = y.
Used by 1 declaration in 1 file
- this file: sym_sphere_net
Context {R : realType} {n : nat}.
forall {R : realType} {n : nat} [eps : R], 0 < eps -> (0 < n)%N -> exists (k : nat) (ys : 'I_k.+1 -> 'cV_n), [/\ forall t : 'I_k.+1, frobenius (ys t) = 1, forall t : 'I_k.+1, exists t' : 'I_k.+1, ys t' = - ys t & forall y : 'cV_n, frobenius y = 1 -> exists t : 'I_k.+1, frobenius (y - ys t) <= eps]
A symmetric eps-net of the unit sphere of 'cV[R]_n, as a family.
Statement as written in the source
Used by 2 declarations in 2 files
- GaussianAnalysis.random_matrix.goe_edge: goe_lambda_max_mean
- this file: gauss_opnorm_mean
Context {R : realType} {N M : nat}.
Statement as written in the source
Used by 4 declarations in 3 files
- GaussianAnalysis.random_matrix.goe: goe_opnorm_lipschitz
- GaussianAnalysis.random_matrix.matrix_series: series_opnorm_lipschitz
- this file: integrable_gauss_opnorm, gauss_opnorm_tail
forall {R : realType} {N M : nat}, (gauss (N * M)).-integrable [set: 'rV_(N * M)] (EFin \o (fun a : 'rV_(N * M) => opnorm (vec_mx a : 'M_(N, M))))
Statement as written in the source
Used by 4 declarations in 3 files
- GaussianAnalysis.matrix.covering: gopnorm_mean, frob_sep
- GaussianAnalysis.random_matrix.goe: goe_opnorm_mean
- this file: gauss_opnorm_mean
forall {R : realType} {N M : nat}, (0 < N)%N -> (0 < M)%N -> \int[gauss (N * M)]_a opnorm (vec_mx a : 'M_(N, M)) <= \int[gauss N]_g frobenius g + \int[gauss M]_h frobenius h
The operator norm of the N x M standard Gaussian matrix vec_mx a has mean at most E[|g|] + E[|h|], for g of law gauss N and h of law gauss M.
For such G with N, M > 0: E[opnorm G] <= E[|g|] + E[|h|] <= sqrt N + sqrt M, and opnorm G >= E[|g|] + E[|h|] + u has probability at most expR (- u^2 / 2).
Statement as written in the source
Used by 3 declarations in 2 files
- GaussianAnalysis.random_matrix.goe: goe_opnorm_mean
- this file: gauss_opnorm_tail, gauss_opnorm_mean_sqrt
Context {R : realType}.
The mean Euclidean norm of a standard Gaussian vector of 'rV[R]_n is at most sqrt n.
E[|g|] <= sqrt n for g of law gauss n, and gauss n is invariant under x |-> - x.
theories/ by: Gaussian/Symmetric/Reflection Statement as written in the source
Used by 5 declarations in 3 files
- this file: gauss_opnorm_mean_sqrt, gauss_proj_singular_tail
- GaussianAnalysis.comparison.cgmt: cgmt_lower, cgmt_upper
- GaussianAnalysis.comparison.sudakov: gauss_max_lower
Context {R : realType} {N M : nat}.
forall {R : realType} {N M : nat}, (0 < N)%N -> (0 < M)%N -> \int[gauss (N * M)]_a opnorm (vec_mx a : 'M_(N, M)) <= Num.ExtraDef.sqrtr N%:R + Num.ExtraDef.sqrtr M%:R
Stated in the README together with gauss_opnorm_mean.
Statement as written in the source
Used by 2 declarations in 1 file
- GaussianAnalysis.matrix.covering: gopnorm_mean, frob_sep
forall {R : realType} {M : nat} (h : 'rV_M), (0 < M)%N -> gwidth_fun (unit_sphere (n:=M)) h = frobenius h
The Gaussian width of the unit sphere of 'cV[R]_M is E[|h|].
Stated in the README together with gauss_min_singular_mean.
Statement as written in the source
Lemma gwidth_sphere (h : 'rV[R]_M) : (0 < M)%N -> gwidth_fun (@unit_sphere R M) h = frobenius h.
Used by 2 declarations in 1 file
- this file: gauss_min_singular_mean, gauss_proj_singular_tail
forall {R : realType} {N M : nat}, (0 < N)%N -> (0 < M)%N -> \int[gauss N]_g frobenius g - \int[gauss M]_h frobenius h <= \int[gauss (N * M)]_a escape_inf (unit_sphere (n:=M)) (vec_mx a : 'M_(N, M))
The smallest singular value: E[inf_(|x| = 1) |G x|] >= E[|g|] - E[|h|].
E[inf_(|x| = 1) |G x|] >= E[|g|] - E[|h|]: the Gaussian width of the unit sphere is E[|h|].
Statement as written in the source
Corollary gauss_min_singular_mean : (0 < N)%N -> (0 < M)%N -> \int[gauss N]_g frobenius g - \int[gauss M]_h frobenius h <= \int[gauss (N * M)]_a escape_inf (@unit_sphere R M) (vec_mx a : 'M[R]_(N, M)).
Context {R : realType}.
forall {R : realType} [n k : nat] (A : 'M_(n, k)), \int[gauss n]_g frobenius (g *m A) ^+ 2 = frobenius A ^+ 2
E[|g A|^2] = |A|^2 for g of law gauss n.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: gauss_proj_mean_ge
forall {R : realType} [n : nat] [P : 'M_n], P^T = P -> P *m P = P -> Num.ExtraDef.sqrtr (\tr P - 1) <= \int[gauss n]_g frobenius (g *m P)
For an orthogonal projection P, E[|g P|] >= sqrt (tr P - 1), by the Gaussian Poincare inequality, since E[|g P|^2] = tr P.
Stated in the README together with gordon_minmax.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: gauss_proj_singular_tail
Context {R : realType} {N M : nat}.
forall {R : realType} {N M : nat} [P : 'M_N] [u : R], P^T = P -> P *m P = P -> P != 0 -> (0 < M)%N -> 0 <= u -> (gauss (N * M) [set a | (escape_inf (unit_sphere (n:=M)) (P *m vec_mx a : 'M_(N, M)) <= Num.ExtraDef.sqrtr (\tr P - 1) - Num.ExtraDef.sqrtr M%:R - u)%R] <= (expR (- u ^+ 2 / 2))%:E)%E
The smallest singular value of P G for an orthogonal projection P: inf_(|x| = 1) |P G x| is at most sqrt (tr P - 1) - sqrt M - u with probability at most expR (- u^2 / 2).
Stated in the README together with gordon_minmax.
Statement as written in the source
Theorem gauss_proj_singular_tail (P : 'M[R]_N) (u : R) : P^T = P -> P *m P = P -> P != 0 -> (0 < M)%N -> 0 <= u -> (gauss (N * M) [set a | escape_inf (@unit_sphere R M) (P *m vec_mx a : 'M[R]_(N, M)) <= Num.sqrt (\tr P - 1) - Num.sqrt M%:R - u]%R <= (expR (- u ^+ 2 / 2))%:E)%E.