On this page
Spectral gaps on a finite space
Imports 3 library modules and 11 external
- GaussianAnalysis.matrix.euclidean
- GaussianAnalysis.matrix.real_spectral
- GaussianAnalysis.matrix.spectral_gap
External: HB.structures, mathcomp.classical.all_ssreflect_compat, mathcomp.algebra.algebraic_hierarchy.ssralg, mathcomp.algebra.numeric_hierarchy.ssrnum, mathcomp.algebra.matrix, mathcomp.algebra.sesquilinear, mathcomp.classical.boolp, mathcomp.reals.reals, mathcomp.algebra.arithmetic_tactic, mathcomp.algebra.ring_tactic, mathcomp.algebra.field_tactic
Imported by 1
For a finite type X and weights w x > 0, wdot w f g = sum_x w x f x g x is the inner product of L^2(w). The map f |-> (sqrt (w x) f x)_x (wvec, with inverse wfun) is an isometry of L^2(w) onto 'cV[R]_#|X| (mxdot_wvec), and an operator L on the functions on X has the matrix wop_mx w L in the basis wbasis that wvec maps to the canonical basis (wop_mx_mul, wop_mx_form).
Let L be linear, self-adjoint in L^2(w) and nonnegative: <f, L g>_w = <L f, g>_w and <f, L f>_w >= 0. If k <f, L f>_w <= <L f, L f>_w for every f, then
k <f, f>_w <= <f, L f>_w
for every f orthogonal to the kernel of L (wgap_from_square): the matrix of L is symmetric and positive semidefinite, and psd_square_gap of matrix/spectral_gap.v applies to it. If moreover the weights sum to one and the kernel of L is the constants, this is the Poincare inequality
k Var_w(f) <= <f, L f>_w
(wpoincare_from_square): a bound of the Dirichlet form by the norm of the generator gives a spectral gap.
Part of target T4 of phase 12: a Rocq formalization of the credited argument of the end of the proof of the proposition 'Gap and covariance under scaled interactions and fields' (rcut:prop:uniform-gap) of 'Cutoff throughout the high-temperature Sherrington-Kirkpatrick phase' (family 227 of the OpenAI math collection, revision 1581d4cbd, file appendices/entropy.tex). The manuscript reads ||A f||^2 >= kappa <f, A f> as a spectral gap of the self-adjoint nonnegative operator A, whose kernel is the constants, by applying it to the eigenfunctions; here the spectral theorem enters through the matrix of the operator. It follows the TeX, not a Lean module of the collection.
Main results
| Results | Statement |
|---|---|
Spectral gaps on a finite space. For a finite type X, weights w x > 0 and an operator L on the functions on X that is linear, self-adjoint in L^2(w) (<f, L g>_w = <L f, g>_w, with <f, g>_w = sum_x w x f x g x) and nonnegative (<f, L f>_w >= 0): if k <f, L f>_w <= <L f, L f>_w for every f, then k <f, f>_w <= <f, L f>_w for every f orthogonal to the kernel of L. If moreover the weights sum to one and the kernel of L is the constants, then k Var_w(f) <= <f, L f>_w for every f (a Poincare inequality). A Rocq formalization of the credited argument of a proposition of family 227 of the OpenAI math collection (see the header). | |
The isometry f |-> (sqrt (w x) f x)_x of L^2(w) onto 'cV[R]_#|X| and its inverse, and the matrix wop_mx w L of an operator in the corresponding basis: wop_mx w L *m wvec f = wvec (L f) and u^T (wop_mx w L) u = <wfun u, L (wfun u)>_w for a linear L, symmetric when L is self-adjoint. |
Declarations21 exported
Context {R : realType} {X : finType}. Variable w : X -> R. Local Notation N := #|X|.
forall {R : realType} {X : finType}, (X -> R) -> (X -> R) -> (X -> R) -> RDefinition wdot (f g : X -> R) : R := \sum_x w x * f x * g x.
The inner product of L^2(w): <f, g>_w = sum_x w x f x g x.
The isometry f |-> (sqrt (w x) f x)_x of L^2(w) onto 'cV[R]_#|X| and its inverse, and the matrix wop_mx w L of an operator in the corresponding basis: wop_mx w L *m wvec f = wvec (L f) and u^T (wop_mx w L) u = <wfun u, L (wfun u)>_w for a linear L, symmetric when L is self-adjoint.
Used by 14 declarations in 2 files
- this file: wdotC, mxdot_wvec, wdot_basis, wop_mx, wop_mx_form, wgap_from_square, wpoincare_from_square
- GaussianApplications.SKGap.Spectral: wdot_ising, ising_gen_dot, ising_gen_form, ising_gen_sym, ising_gen_ge0, ising_gen_ker, ising_gap_from_square
Used by 2 declarations in 2 files
- this file: wop_mx_sym
- GaussianApplications.SKGap.Spectral: ising_gen_sym
forall {R : realType} {X : finType}, (X -> R) -> (X -> R) -> 'cV_#|X|Definition wvec (f : X -> R) : 'cV[R]_N := \col_k (Num.sqrt (w (enum_val k)) * f (enum_val k)).
The map f |-> (sqrt (w x) f x)_x of L^2(w) onto 'cV[R]_N, and its inverse.
Stated in the README together with wdot.
Used by 6 declarations in 1 file
- this file: wvecK, wfunK, mxdot_wvec, wvec_eq0, wop_mx_mul, wgap_from_square
forall {R : realType} {X : finType}, (X -> R) -> 'cV_#|X| -> X -> RDefinition wfun (u : 'cV[R]_N) (x : X) : R := u (enum_rank x) 0 / Num.sqrt (w x).
Stated in the README together with wdot.
Used by 8 declarations in 1 file
- this file: wvecK, wfunK, wbasis, wfun_sum, wdot_basis, wop_mx_mul, wop_mx_form, wgap_from_square
Hypothesis w0 : forall x, 0 < w x.
forall {R : realType} {X : finType} [w : X -> R], (forall x : X, 0 < w x) -> forall x : X, 0 < Num.ExtraDef.sqrtr (w x)
Statement as written in the source
Lemma sqrt_w_gt0 x : 0 < Num.sqrt (w x).
Used by 4 declarations in 1 file
- this file: wvecK, wfunK, wvec_eq0, wdot_basis
forall {R : realType} {X : finType} [w : X -> R], (forall x : X, 0 < w x) -> forall u : 'cV_#|X|, wvec w (wfun w u) = u
Used by 2 declarations in 1 file
- this file: wop_mx_form, wgap_from_square
forall {R : realType} {X : finType} [w : X -> R], (forall x : X, 0 < w x) -> forall f : X -> R, wfun w (wvec w f) = f
Used by 1 declaration in 1 file
- this file: wgap_from_square
forall {R : realType} {X : finType} (F : X -> R), \sum_(k < #|X|) F (enum_val k) = \sum_x F x
Statement as written in the source
Lemma sum_enum_val (F : X -> R) : \sum_(k < N) F (enum_val k) = \sum_x F x.
Used by 1 declaration in 1 file
- this file: mxdot_wvec
forall {R : realType} {X : finType} [w : X -> R], (forall x : X, 0 < w x) -> forall f g : X -> R, mxdot (wvec w f) (wvec w g) = wdot w f g
Stated in the README together with wdot.
Used by 2 declarations in 1 file
- this file: wop_mx_form, wgap_from_square
forall {R : realType} {X : finType} [w : X -> R], (forall x : X, 0 < w x) -> forall [f : X -> R], wvec w f = 0 -> forall x : X, f x = 0
Statement as written in the source
Lemma wvec_eq0 f : wvec f = 0 -> forall x, f x = 0.
Used by 1 declaration in 1 file
- this file: wgap_from_square
forall {R : realType} {X : finType}, (X -> R) -> 'I_#|X| -> X -> RDefinition wbasis (k : 'I_N) : X -> R := wfun (delta_mx k 0).
The basis of L^2(w) that wvec maps to the canonical basis, and the inner products with it.
Used by 3 declarations in 1 file
- this file: wfun_sum, wdot_basis, wop_mx
forall {R : realType} {X : finType} (w : X -> R) (u : 'cV_#|X|), wfun w u = (fun x : X => \sum_k u k 0 * wbasis w k x)
Used by 1 declaration in 1 file
- this file: wop_mx_mul
forall {R : realType} {X : finType} [w : X -> R], (forall x : X, 0 < w x) -> forall (k : 'I_#|X|) (g : X -> R), wdot w (wbasis w k) g = Num.ExtraDef.sqrtr (w (enum_val k)) * g (enum_val k)
Statement as written in the source
Used by 1 declaration in 1 file
- this file: wop_mx_mul
A linear operator L on functions, self-adjoint and nonnegative in L^2(w).
Variable L : (X -> R) -> X -> R. Hypothesis L_lin : forall (a : R) (f g : X -> R) x, L (fun y => a * f y + g y) x = a * L f x + L g x. Hypothesis L_sym : forall f g, wdot f (L g) = wdot (L f) g. Hypothesis L_ge0 : forall f, 0 <= wdot f (L f).
forall {R : realType} {X : finType} [L : (X -> R) -> X -> R], (forall (a : R) (f g : X -> R) (x : X), L (fun y : X => a * f y + g y) x = a * L f x + L g x) -> forall x : X, L (fun=> 0) x = 0
Statement as written in the source
Lemma L_cst0 x : L (fun _ => 0) x = 0.
Used by 1 declaration in 1 file
- this file: L_sum
forall {R : realType} {X : finType} [L : (X -> R) -> X -> R], (forall (a : R) (f g : X -> R) (x : X), L (fun y : X => a * f y + g y) x = a * L f x + L g x) -> forall [I : finType] (c : I -> R) (h : I -> X -> R) (x : X), L (fun y : X => \sum_i c i * h i y) x = \sum_i c i * L (h i) x
Statement as written in the source
Lemma L_sum (I : finType) (c : I -> R) (h : I -> X -> R) x : L (fun y => \sum_i c i * h i y) x = \sum_i c i * L (h i) x.
Used by 1 declaration in 1 file
- this file: wop_mx_mul
forall {R : realType} {X : finType}, (X -> R) -> ((X -> R) -> X -> R) -> 'M_#|X|The matrix of L in the basis wbasis.
Stated in the README together with wdot.
Used by 4 declarations in 1 file
- this file: wop_mx_mul, wop_mx_sym, wop_mx_form, wgap_from_square
forall {R : realType} {X : finType} [w : X -> R], (forall x : X, 0 < w x) -> forall [L : (X -> R) -> X -> R], (forall (a : R) (f g : X -> R) (x : X), L (fun y : X => a * f y + g y) x = a * L f x + L g x) -> forall u : 'cV_#|X|, wop_mx w L *m u = wvec w (L (wfun w u))
Stated in the README together with wdot.
Used by 2 declarations in 1 file
- this file: wop_mx_form, wgap_from_square
forall {R : realType} {X : finType} [w : X -> R] [L : (X -> R) -> X -> R], (forall f g : X -> R, wdot w f (L g) = wdot w (L f) g) -> wop_mx w L \is symmetricmx
Stated in the README together with wdot.
Statement as written in the source
Lemma wop_mx_sym : wop_mx \is symmetricmx.
Used by 1 declaration in 1 file
- this file: wgap_from_square
forall {R : realType} {X : finType} [w : X -> R], (forall x : X, 0 < w x) -> forall [L : (X -> R) -> X -> R], (forall (a : R) (f g : X -> R) (x : X), L (fun y : X => a * f y + g y) x = a * L f x + L g x) -> forall u : 'cV_#|X|, mxdot u (wop_mx w L *m u) = wdot w (wfun w u) (L (wfun w u))
Stated in the README together with wdot.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: wgap_from_square
forall {R : realType} {X : finType} [w : X -> R], (forall x : X, 0 < w x) -> forall [L : (X -> R) -> X -> R], (forall (a : R) (f g : X -> R) (x : X), L (fun y : X => a * f y + g y) x = a * L f x + L g x) -> (forall f g : X -> R, wdot w f (L g) = wdot w (L f) g) -> (forall f : X -> R, 0 <= wdot w f (L f)) -> forall [k : R], (forall f : X -> R, k * wdot w f (L f) <= wdot w (L f) (L f)) -> forall [f : X -> R], (forall g : X -> R, (forall x : X, L g x = 0) -> wdot w g f = 0) -> k * wdot w f f <= wdot w f (L f)
The gap from a bound of the form by the squared norm, for the functions orthogonal to the kernel.
Spectral gaps on a finite space. For a finite type X, weights w x > 0 and an operator L on the functions on X that is linear, self-adjoint in L^2(w) (<f, L g>_w = <L f, g>_w, with <f, g>_w = sum_x w x f x g x) and nonnegative (<f, L f>_w >= 0): if k <f, L f>_w <= <L f, L f>_w for every f, then k <f, f>_w <= <f, L f>_w for every f orthogonal to the kernel of L. If moreover the weights sum to one and the kernel of L is the constants, then k Var_w(f) <= <f, L f>_w for every f (a Poincare inequality). A Rocq formalization of the credited argument of a proposition of family 227 of the OpenAI math collection (see the header).
Statement as written in the source
Used by 1 declaration in 1 file
- this file: wpoincare_from_square
forall {R : realType} {X : finType} [w : X -> R], (forall x : X, 0 < w x) -> forall [L : (X -> R) -> X -> R], (forall (a : R) (f g : X -> R) (x : X), L (fun y : X => a * f y + g y) x = a * L f x + L g x) -> (forall f g : X -> R, wdot w f (L g) = wdot w (L f) g) -> (forall f : X -> R, 0 <= wdot w f (L f)) -> forall [k : R], \sum_x w x = 1 -> (forall g : X -> R, (forall x : X, L g x = 0) <-> (forall x y : X, g x = g y)) -> (forall f : X -> R, k * wdot w f (L f) <= wdot w (L f) (L f)) -> forall f : X -> R, k * \sum_x w x * (f x - \sum_y w y * f y) ^+ 2 <= wdot w f (L f)
The Poincare inequality, when the weights sum to one and the kernel of L is the constants.
Stated in the README together with wgap_from_square.
Statement as written in the source
Used by 1 declaration in 1 file
- GaussianApplications.SKGap.Spectral: ising_gap_from_square