On this page
The convex Gaussian min-max theorem on cones
Imports 9 library modules and 28 external
- GaussianAnalysis.gaussian.measurable_matrix
- GaussianAnalysis.gaussian.gauss
- GaussianAnalysis.matrix.euclidean
- GaussianAnalysis.matrix.nets
- GaussianAnalysis.comparison.gauss_concentration
- GaussianAnalysis.comparison.gauss_smoothing
- GaussianAnalysis.comparison.escape
- GaussianAnalysis.comparison.cgmt
- GaussianAnalysis.convex.moreau
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
Vectors x of R^M are column vectors 'cV[R]_M and h : 'rV[R]_M, as in cgmt.v; |x| is frobenius x and <h, x> is mxdot h^T x. Let K be a set of 'cV[R]_M that contains 0 and
sigma_K(h) = sup_(x in K, |x| <= 1) <h, x> (cone_sup K h).
- cone_sup_ub, cone_sup_le, cone_sup_ge0, cone_sup_le_norm: sigma_K(h) is the least upper bound and lies in [0, |h|]; cone_sup_lipschitz: it is 1-Lipschitz in h; cone_sup_attained: for K closed the supremum is attained (compactness); cone_sup_dot: for a cone K (a x is in K for x in K and a >= 0), <h, x> <= |x| sigma_K(h) on K.
- cone_sup_proj: for a closed convex cone K of row vectors, sigma_(tr_set K)(h) = |proj K h| (cone_proj_support of moreau.v), and cone_sup_tr_setE writes sigma_(tr_set K)(h) as a supremum over K.
Let B be a set of 'cV[R]_M such that every nonzero point of K has a positive multiple in B (a base of K when B is in K and 0 is not in B). The auxiliary value of the CGMT on B (cgmt.v),
phi(B) = cgmt_aux B g h = inf_(x in B) (|g| |x| - <h, x>)_+,
is governed by the sign of |g| - sigma_K(h):
- cgmt_aux_cone_zero: for K closed, phi(B) = 0 when 0 < sigma_K(h) and |g| <= sigma_K(h), in particular when 0 < |g| <= sigma_K(h) or |g| < sigma_K(h) (cgmt_aux_cone_zero_lt): at a point x of K with |x| <= 1 and <h, x> = sigma_K(h), the multiples a x with a > 0 have |g| |a x| - <h, a x> <= 0;
- cgmt_aux_cone_ge: for a cone K, B nonempty and in K, and r <= |x| on B, phi(B) >= r (|g| - sigma_K(h))_+, since <h, x> <= |x| sigma_K(h) on K.
cgmt_aux_tr_cone_zero and cgmt_aux_tr_cone_ge are the same statements for a closed convex cone K and a set B of row vectors, with |proj K h| in place of sigma_K(h); tr_set0, tr_set_cone, tr_set_base, tr_set_sub and tr_set_norm_ge carry the hypotheses from row vectors to tr_set.
With the CGMT of cgmt.v: let a have law gauss (N * M), so that A = vec_mx a is an N x M matrix of independent standard normal entries, z have law gauss (N + M), g = lsubmx z and h = rsubmx z, N > 0, B be nonempty and |x| <= rho on B.
- cone_escape_zero_tail: if rho > 0, K is closed, B is closed and convex and P(|g| < sigma_K(h)) > 1/2, then inf_(x in B) |A x| is at least rho (1 + 2 sqrt (ln 4)) + u with probability at most 2 exp (- u^2 / (2 rho^2)) (cgmt_zero_tail): the kernel of A meets K approximately.
- cone_escape_lower_tail: if K is a cone, B is in K and r <= |x| on B, then inf_(x in B) |A x| is at most r E (|g| - sigma_K(h))_+ - rho - u with probability at most 2 exp (- u^2 / (2 rho^2)) (cgmt_lower and cgmt_escape_tail): the kernel of A stays away from B when |g| exceeds sigma_K(h) in mean by more than (rho + u) / r.
cone_ | sup_(x in K, |x| <= 1) <h, x>, for h : 'rV[R]_M |
Main results
| Results | Statement |
|---|---|
For a set K of 'cV[R]_M containing 0, sigma_K(h) = sup_(x in K, |x| <= 1) <h, x> lies in [0, |h|], is 1-Lipschitz in h, and is attained when K is closed (compactness). For a cone K (a x in K for x in K and a >= 0), <h, x> <= |x| sigma_K(h) on K. For a closed convex cone K of row vectors, sigma_(tr_set K)(h) = |proj K h| (cone_proj_support). | |
The auxiliary value of the CGMT on a set B that contains a positive multiple of every nonzero point of a cone K: for K closed, cgmt_aux B g h = 0 when 0 < sigma_K(h) and |g| <= sigma_K(h), in particular when 0 < |g| <= sigma_K(h); for B nonempty and in K and r <= |x| on B, cgmt_aux B g h >= r (|g| - sigma_K(h))_+. The tr versions state the same for a closed convex cone and a set of row vectors, with |proj K h| in place of sigma_K(h). | |
The CGMT on cones, for A = vec_mx a an N x M matrix of independent standard normal entries (N > 0), z = (g, h) of law gauss (N + M) and B as above, nonempty with |x| <= rho on B. If rho > 0, K is closed, B is closed and convex and P(|g| < sigma_K(h)) > 1/2, then inf_(x in B) |A x| >= rho (1 + 2 sqrt (ln 4)) + u has probability at most 2 exp (- u^2 / (2 rho^2)): the kernel of A meets K approximately. If B is in K and r <= |x| on B, then inf_(x in B) |A x| <= r E (|g| - sigma_K(h))_+ - rho - u has probability at most 2 exp (- u^2 / (2 rho^2)): the kernel stays away from B. |
Declarations22 exported, 7 local
Context {R : realType} {M : nat}. Variable K : set 'cV[R]_M.
forall {R : realType} {M : nat}, set 'cV_M -> 'rV_M -> RDefinition cone_sup (h : 'rV[R]_M) : R := sup [set mxdot h^T x | x in [set x | K x /\ frobenius x <= 1]].
sigma_K(h) = sup_(x in K, |x| <= 1) <h, x>.
For a set K of 'cV[R]_M containing 0, sigma_K(h) = sup_(x in K, |x| <= 1) <h, x> lies in [0, |h|], is 1-Lipschitz in h, and is attained when K is closed (compactness). For a cone K (a x in K for x in K and a >= 0), <h, x> <= |x| sigma_K(h) on K. For a closed convex cone K of row vectors, sigma_(tr_set K)(h) = |proj K h| (cone_proj_support).
Used by 16 declarations in 1 file
Used by 3 declarations in 1 file
- this file: cone_sup_ub, cone_sup_le_norm, cone_sup_lipschitz
forall {R : realType} {M : nat} [K : set 'cV_M] (h : 'rV_M) [x : 'cV_M], K x -> frobenius x <= 1 -> mxdot h^T x <= cone_sup K h
Statement as written in the source
Used by 4 declarations in 1 file
- this file: cone_sup_ge0, cone_sup_lipschitz, cone_sup_attained, cone_sup_dot
Hypothesis K0 : K 0.
forall {R : realType} {M : nat} [K : set 'cV_M], K 0 -> forall [h : 'rV_M] [c : join_Num_NumDomain_between_GRing_ComNzRing_and_Order_Preorder R], (forall x : 'cV_M, K x -> frobenius x <= 1 -> mxdot h^T x <= c) -> cone_sup K h <= c
Statement as written in the source
Used by 3 declarations in 1 file
- this file: cone_sup_le_norm, cone_sup_lipschitz, cone_sup_attained
forall {R : realType} {M : nat} [K : set 'cV_M], K 0 -> forall h : 'rV_M, 0 <= cone_sup K h
Statement as written in the source
Lemma cone_sup_ge0 h : 0 <= cone_sup h.
forall {R : realType} {M : nat} [K : set 'cV_M], K 0 -> forall h h' : 'rV_M, `|cone_sup K h - cone_sup K h'| <= frobenius (h - h')
sigma_K is 1-Lipschitz.
Stated in the README together with cone_sup.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: F_lip
forall {R : realType} {M : nat} [K : set 'cV_M], K 0 -> forall h : 'rV_M, closed K -> exists x : 'cV_M, [/\ K x, frobenius x <= 1 & mxdot h^T x = cone_sup K h]
For K closed, the supremum is attained.
Stated in the README together with cone_sup.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: cgmt_aux_cone_zero
Hypothesis Kcone : forall x (a : R), K x -> 0 <= a -> K (a *: x).
forall {R : realType} {M : nat} [K : set 'cV_M], (forall (x : 'cV_M) (a : R), K x -> 0 <= a -> K (a *: x)) -> forall (h : 'rV_M) [x : 'cV_M], K x -> mxdot h^T x <= frobenius x * cone_sup K h
On the cone, <h, x> <= |x| sigma_K(h).
Stated in the README together with cone_sup.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: cgmt_aux_cone_ge
Context {R : realType} {M : nat}. Variable K : set 'rV[R]_M.
forall {R : realType} {M : nat} (K : set 'rV_M) (h : 'rV_M), cone_sup (tr_set K) h = sup [set mxdot h y | y in [set y | K y /\ frobenius y <= 1]]
Statement as written in the source
Used by 1 declaration in 1 file
- this file: cone_sup_proj
Hypotheses (Kc : closed K) (K0 : K 0). Hypothesis Kcvx : forall x y (t : R), K x -> K y -> 0 <= t <= 1 -> K (x + t *: (y - x)). Hypothesis Kcone : forall y (a : R), K y -> 0 <= a -> K (a *: y).
forall {R : realType} {M : nat} [K : set 'rV_M], closed K -> K 0 -> (forall (x y : 'rV_M) (t : R), K x -> K y -> 0 <= t <= 1 -> K (x + t *: (y - x))) -> (forall (y : 'rV_M) (a : R), K y -> 0 <= a -> K (a *: y)) -> forall h : 'rV_M, cone_sup (tr_set K) h = frobenius (proj K h)
For a closed convex cone, sigma is the norm of the projection.
Stated in the README together with cone_sup.
Statement as written in the source
Used by 2 declarations in 1 file
- this file: cgmt_aux_tr_cone_zero, cgmt_aux_tr_cone_ge
Context {R : realType} {M : nat}. Variables (K B : set 'rV[R]_M).
forall {R : realType} {M : nat} [K : set 'rV_M], K 0 -> tr_set K 0
Statement as written in the source
Lemma tr_set0 : K 0 -> tr_set K 0.
Used by 1 declaration in 1 file
- this file: cgmt_aux_tr_cone_zero
forall {R : realType} {M : nat} [K : set 'rV_M], (forall (y : 'rV_M) (a : R), K y -> 0 <= a -> K (a *: y)) -> forall [x : 'cV_M] [a : R], tr_set K x -> 0 <= a -> tr_set K (a *: x)
Statement as written in the source
Used by 1 declaration in 1 file
- this file: cgmt_aux_tr_cone_ge
forall {R : realType} {M : nat} [K B : set 'rV_M], (forall y : 'rV_M, K y -> y != 0 -> exists2 a : R, 0 < a & B (a *: y)) -> forall [x : 'cV_M], tr_set K x -> x != 0 -> exists2 a : R, 0 < a & tr_set B (a *: x)
Statement as written in the source
Used by 1 declaration in 1 file
- this file: cgmt_aux_tr_cone_zero
forall {R : realType} {M : nat} [K B : set 'rV_M], (forall y : 'rV_M, B y -> K y) -> forall [x : 'cV_M], tr_set B x -> tr_set K x
Statement as written in the source
Used by 1 declaration in 1 file
- this file: cgmt_aux_tr_cone_ge
forall {R : realType} {M : nat} [B : set 'rV_M] [r : R], (forall y : 'rV_M, B y -> r <= frobenius y) -> forall [x : 'cV_M], tr_set B x -> r <= frobenius x
Statement as written in the source
Used by 1 declaration in 1 file
- this file: cgmt_aux_tr_cone_ge
Context {R : realType} {N M : nat}. Variables (K B : set 'cV[R]_M). Hypothesis K0 : K 0.
Hypothesis Kc : closed K. Hypothesis Bbase : forall x, K x -> x != 0 -> exists2 a : R, 0 < a & B (a *: x).
forall {R : realType} {N M : nat} [K B : set 'cV_M], K 0 -> closed K -> (forall x : 'cV_M, K x -> x != 0 -> exists2 a : R, 0 < a & B (a *: x)) -> forall [g : 'rV_N] [h : 'rV_M], 0 < cone_sup K h -> frobenius g <= cone_sup K h -> cgmt_aux B g h = 0
phi(B) = 0 when 0 < sigma_K(h) and |g| <= sigma_K(h).
The auxiliary value of the CGMT on a set B that contains a positive multiple of every nonzero point of a cone K: for K closed, cgmt_aux B g h = 0 when 0 < sigma_K(h) and |g| <= sigma_K(h), in particular when 0 < |g| <= sigma_K(h); for B nonempty and in K and r <= |x| on B, cgmt_aux B g h >= r (|g| - sigma_K(h))_+. The tr versions state the same for a closed convex cone and a set of row vectors, with |proj K h| in place of sigma_K(h).
Statement as written in the source
Used by 2 declarations in 1 file
- this file: cgmt_aux_cone_zero_lt, cgmt_aux_tr_cone_zero
forall {R : realType} {N M : nat} [K B : set 'cV_M], K 0 -> closed K -> (forall x : 'cV_M, K x -> x != 0 -> exists2 a : R, 0 < a & B (a *: x)) -> forall [g : 'rV_N] [h : 'rV_M], frobenius g < cone_sup K h -> cgmt_aux B g h = 0
Statement as written in the source
Used by 1 declaration in 1 file
- this file: cone_escape_zero_tail
Hypothesis Kcone : forall x (a : R), K x -> 0 <= a -> K (a *: x). Hypothesis BK : forall x, B x -> K x. Variable r : R. Hypothesis Br : forall x, B x -> r <= frobenius x.
forall {R : realType} {N M : nat} [K B : set 'cV_M], (forall (x : 'cV_M) (a : R), K x -> 0 <= a -> K (a *: x)) -> (forall x : 'cV_M, B x -> K x) -> forall [r : R], (forall x : 'cV_M, B x -> r <= frobenius x) -> forall (g : 'rV_N) (h : 'rV_M), B !=set0 -> r * maxr 0 (frobenius g - cone_sup K h) <= cgmt_aux B g h
phi(B) >= r (|g| - sigma_K(h))_+.
Stated in the README together with cgmt_aux_cone_zero.
Statement as written in the source
Used by 2 declarations in 1 file
- this file: cgmt_aux_tr_cone_ge, cone_escape_lower_tail
Context {R : realType} {N M : nat}. Variables (K B : set 'rV[R]_M). Hypotheses (Kc : closed K) (K0 : K 0). Hypothesis Kcvx : forall x y (t : R), K x -> K y -> 0 <= t <= 1 -> K (x + t *: (y - x)). Hypothesis Kcone : forall y (a : R), K y -> 0 <= a -> K (a *: y).
forall {R : realType} {N M : nat} [K B : set 'rV_M], closed K -> K 0 -> (forall (x y : 'rV_M) (t : R), K x -> K y -> 0 <= t <= 1 -> K (x + t *: (y - x))) -> (forall (y : 'rV_M) (a : R), K y -> 0 <= a -> K (a *: y)) -> forall [g : 'rV_N] [h : 'rV_M], (forall y : 'rV_M, K y -> y != 0 -> exists2 a : R, 0 < a & B (a *: y)) -> 0 < frobenius g -> frobenius g <= frobenius (proj K h) -> cgmt_aux (tr_set B) g h = 0
(i) for row vectors: phi(B) = 0 when 0 < |g| <= |proj K h|.
Stated in the README together with cgmt_aux_cone_zero.
forall {R : realType} {N M : nat} [K B : set 'rV_M], closed K -> K 0 -> (forall (x y : 'rV_M) (t : R), K x -> K y -> 0 <= t <= 1 -> K (x + t *: (y - x))) -> (forall (y : 'rV_M) (a : R), K y -> 0 <= a -> K (a *: y)) -> forall [r : R] (g : 'rV_N) (h : 'rV_M), B !=set0 -> (forall y : 'rV_M, B y -> K y) -> (forall y : 'rV_M, B y -> r <= frobenius y) -> r * maxr 0 (frobenius g - frobenius (proj K h)) <= cgmt_aux (tr_set B) g h
(ii) for row vectors: phi(B) >= r (|g| - |proj K h|)_+.
Stated in the README together with cgmt_aux_cone_zero.
Context {R : realType} {N M : nat}. Variables (K B : set 'cV[R]_M) (rho : R). Hypotheses (K0 : K 0) (B0 : B !=set0). Hypothesis Bb : forall x, B x -> frobenius x <= rho.
|g| - sigma_K(h) is a Lipschitz function of z = (g, h).
Used by 5 declarations in 1 file
- this file: F_lip, F0_lip, mF, cone_escape_zero_tail, cone_escape_lower_tail
Let F0_lip (z z' : 'rV[R]_(N + M)) : `|Num.max 0 (F z) - Num.max 0 (F z')| <= Num.sqrt 2 * frobenius (z - z').
Used by 1 declaration in 1 file
- this file: cone_escape_lower_tail
Let mF : measurable_fun setT F.
Used by 1 declaration in 1 file
- this file: cone_escape_zero_tail
Let mphi : measurable_fun setT (fun z : 'rV[R]_(N + M) => cgmt_aux B (lsubmx z) (rsubmx z)).
Used by 1 declaration in 1 file
- this file: cone_escape_zero_tail
Let mPhi : measurable_fun setT (fun a : 'rV[R]_(N * M) => escape_inf B (vec_mx a : 'M[R]_(N, M))).
Used by 1 declaration in 1 file
- this file: cone_escape_lower_tail
forall {R : realType} {N M : nat} [K B : set 'cV_M] [rho : R], K 0 -> B !=set0 -> (forall x : 'cV_M, B x -> frobenius x <= rho) -> forall [u : R], (0 < N)%N -> 0 < rho -> closed K -> (forall x : 'cV_M, K x -> x != 0 -> exists2 a : R, 0 < a & B (a *: x)) -> closed B -> (forall (x y : 'cV_M) (t : R), B x -> B y -> 0 <= t <= 1 -> B (x + t *: (y - x))) -> 0 <= u -> ((2^-1)%:E < gauss (N + M) [set z | (frobenius (lsubmx z) < cone_sup K (rsubmx z))%R])%E -> (gauss (N * M) [set a | (rho * (1 + 2 * Num.ExtraDef.sqrtr (ln 4)) + u <= escape_inf B (vec_mx a : 'M_(N, M)))%R] <= (2 * expR (- u ^+ 2 / (2 * rho ^+ 2)))%:E)%E
If |g| < sigma_K(h) with probability more than 1/2, the kernel of A meets K approximately: inf_(x in B) |A x| is at least rho (1 + 2 sqrt (ln 4)) + u with probability at most 2 exp (- u^2 / (2 rho^2)).
The CGMT on cones, for A = vec_mx a an N x M matrix of independent standard normal entries (N > 0), z = (g, h) of law gauss (N + M) and B as above, nonempty with |x| <= rho on B. If rho > 0, K is closed, B is closed and convex and P(|g| < sigma_K(h)) > 1/2, then inf_(x in B) |A x| >= rho (1 + 2 sqrt (ln 4)) + u has probability at most 2 exp (- u^2 / (2 rho^2)): the kernel of A meets K approximately. If B is in K and r <= |x| on B, then inf_(x in B) |A x| <= r E (|g| - sigma_K(h))_+ - rho - u has probability at most 2 exp (- u^2 / (2 rho^2)): the kernel stays away from B.
Statement as written in the source
Theorem cone_escape_zero_tail (u : R) : (0 < N)%N -> 0 < rho -> closed K -> (forall x, K x -> x != 0 -> exists2 a : R, 0 < a & B (a *: x)) -> closed B -> (forall x y (t : R), B x -> B y -> 0 <= t <= 1 -> B (x + t *: (y - x))) -> 0 <= u -> ((2^-1)%:E < gauss (N + M) [set z | frobenius (lsubmx z) < cone_sup K (rsubmx z)]%R)%E -> (gauss (N * M) [set a | rho * (1 + 2 * Num.sqrt (ln 4)) + u <= escape_inf B (vec_mx a : 'M[R]_(N, M))]%R <= (2 * expR (- u ^+ 2 / (2 * rho ^+ 2)))%:E)%E.
forall {R : realType} {N M : nat} [K B : set 'cV_M] [rho : R], K 0 -> B !=set0 -> (forall x : 'cV_M, B x -> frobenius x <= rho) -> forall [r u : R], (0 < N)%N -> (forall (x : 'cV_M) (a : R), K x -> 0 <= a -> K (a *: x)) -> (forall x : 'cV_M, B x -> K x) -> (forall x : 'cV_M, B x -> r <= frobenius x) -> 0 <= u -> (gauss (N * M) [set a | (escape_inf B (vec_mx a : 'M_(N, M)) <= r * \int[gauss (N + M)]_z maxr 0 (frobenius (lsubmx z) - cone_sup K (rsubmx z)) - rho - u)%R] <= (2 * expR (- u ^+ 2 / (2 * rho ^+ 2)))%:E)%E
The kernel of A stays away from B: inf_(x in B) |A x| is at most r E (|g| - sigma_K(h))_+ - rho - u with probability at most 2 exp (- u^2 / (2 rho^2)).
Stated in the README together with cone_escape_zero_tail.
Statement as written in the source
Theorem cone_escape_lower_tail (r u : R) : (0 < N)%N -> (forall x (a : R), K x -> 0 <= a -> K (a *: x)) -> (forall x, B x -> K x) -> (forall x, B x -> r <= frobenius x) -> 0 <= u -> (gauss (N * M) [set a | escape_inf B (vec_mx a : 'M[R]_(N, M)) <= r * \int[gauss (N + M)]_z Num.max 0 (frobenius (lsubmx z) - cone_sup K (rsubmx z)) - rho - u]%R <= (2 * expR (- u ^+ 2 / (2 * rho ^+ 2)))%:E)%E.