On this page
The rotation invariance of the GOE
Imports 7 library modules and 23 external
- GaussianAnalysis.gaussian.measurable_matrix
- GaussianAnalysis.gaussian.gauss
- GaussianAnalysis.gaussian.gauss_interpolation
- GaussianAnalysis.matrix.euclidean
- GaussianAnalysis.matrix.real_spectral
- GaussianAnalysis.comparison.gauss_law
- GaussianAnalysis.random_matrix.goe
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.algebra.interval, mathcomp.algebra.arithmetic_tactic, mathcomp.algebra.ring_tactic, mathcomp.algebra.field_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.measure_theory.measure, mathcomp.analysis.lebesgue_measure, mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral, mathcomp.analysis.measurable_realfun, mathcomp.analysis.numfun, mathcomp.analysis.probability_theory.probability
Let W = goe_mx a, with a of law gauss (n * n). Lemma 5.13 of Koehler and Sohn (arXiv 2608.27372, lines 5820-5860) averages the diagonal of U D U^T over a Haar matrix U, and MathComp-Analysis has no Haar measure on the orthogonal group. Item G6 of phase 5 proves what the paper uses the lemma for, that the diagonal of F(W) is nearly constant for an equivariant F, from the invariance of the law of W under orthogonal conjugation, with Householder reflections in place of the Haar matrix. Every result holds for every n.
- goe_conj_integral: the law of W is invariant under W |-> Q^T W Q for every orthogonal Q. The map a |-> mxvec (Q^T (vec_mx a) Q) is linear with an orthogonal matrix conj_mx Q (conj_mx_orthogonal: it preserves the Frobenius product, mxdot_conj), Q^T goe_mx a Q = goe_mx (a conj_mx Q) (goe_mx_conj), and gauss (n * n) is invariant under orthogonal maps (integral_gauss_mulmx).
- goe_equiv_form: for F equivariant (conj_equivariant) and every unit row vector u, u F(W) u^T has the law of F(W)_00, because the Householder reflection that maps the first basis vector to u^T (householder_swap) conjugates W into a matrix of the same law. Hence each diagonal entry of F(W) has the law of F(W)_00 (goe_equiv_diag), and so has (F(W)_ii + F(W)_jj) / 2 + s F(W)_ij for i != j and s = 1 or -1 when F(W) is symmetric (goe_equiv_pair, with u = (e_i + s e_j) / sqrt 2).
- goe_diag_var_identity: if moreover F(W) is symmetric and E F(W)_ij^2 is finite, then E[F(W)_ii F(W)_jj] + 2 E[F(W)_ij^2] = E[F(W)_00^2] for i != j (goe_equiv_pair2), hence E[diag_var F(W)] = 2 / (n + 2) E[|F(W)|_F^2 / n - (tr F(W) / n)^2]. This is the identity of the proof of Lemma 5.13 (lines 5853-5860), where the rho_i are the eigenvalues of F(W).
- goe_diag_var_tail: for C >= 0 and eps > 0, P(diag_var F(W) >= eps) <= 2 C / ((n + 2) eps) + P(|F(W)|_F^2 > C n), by the identity for the map W |-> F(W) when |F(W)|_F^2 <= C n and 0 otherwise, which is still equivariant, and Markov's inequality (gauss_markov). So diag_var F(W) tends to 0 in probability when |F(W)|_F^2 / n is bounded in probability, as for F(W) the positive part (psd_part of matrix/psd_part.v) of W - w I with w bounded, which is how Proposition 5.15 uses Lemma 5.13.
conj_ | F (Q W Q^T) = Q F(W) Q^T for every orthogonal Q and every symmetric W |
diag_ | (1 / n) \sum_j (A_jj - tr A / n)^2, the empirical variance of the diagonal of A : 'M_n |
Main results
| Results | Statement |
|---|---|
The law of the GOE matrix W is invariant under W |-> Q^T W Q for every orthogonal Q. For F equivariant (F (Q W Q^T) = Q F(W) Q^T for every orthogonal Q and symmetric W) and every unit row vector u, u F(W) u^T has the law of F(W)_00: a Householder reflection maps the first basis vector to u. | |
Lemma 5.13 of Koehler and Sohn without the Haar measure. For F equivariant with F(W) symmetric and E F(W)_ij^2 finite, E[diag_var F(W)] = 2 / (n + 2) E[|F(W)|_F^2 / n - (tr F(W) / n)^2], where diag_var A is the empirical variance of the diagonal of A. Without moment assumptions, P(diag_var F(W) >= eps) <= 2 C / ((n + 2) eps) + P(|F(W)|_F^2 > C n) for every C >= 0 and eps > 0. |
Declarations24 exported, 12 local
Context {R : realType} (d : nat).
forall {R : realType} [d : nat], 'M_d -> 'M_(d * d)Definition conj_mx (Q : 'M[R]_d) : 'M[R]_(d * d) := lin_mx (mulmxr Q \o mulmx Q^T).
The matrix of a |-> mxvec (Q^T (vec_mx a) Q).
Used by 4 declarations in 1 file
- this file: conj_mxE, conj_mx_orthogonal, goe_mx_conj, goe_conj_integral
forall {R : realType} [d : nat] (Q : 'M_d) (a : 'rV_(d * d)), a *m conj_mx Q = mxvec (Q^T *m vec_mx a *m Q)
Statement as written in the source
Lemma conj_mxE (Q : 'M[R]_d) (a : 'rV[R]_(d * d)) : a *m conj_mx Q = mxvec (Q^T *m vec_mx a *m Q).
Used by 2 declarations in 1 file
- this file: conj_mx_orthogonal, goe_mx_conj
mxvec is an isometry for the Frobenius product.
Used by 1 declaration in 1 file
- this file: conj_mx_orthogonal
forall {R : realType} [d : nat] [Q : 'M_d] (A B : 'M_d), Q \is orthogonalmx -> mxdot (Q^T *m A *m Q) (Q^T *m B *m Q) = mxdot A B
Conjugation by an orthogonal matrix preserves the Frobenius product.
Statement as written in the source
Lemma mxdot_conj (Q A B : 'M[R]_d) : Q \is orthogonalmx -> mxdot (Q^T *m A *m Q) (Q^T *m B *m Q) = mxdot A B.
Used by 1 declaration in 1 file
- this file: conj_mx_orthogonal
forall {R : realType} [d : nat] [Q : 'M_d], Q \is orthogonalmx -> conj_mx Q \is orthogonalmx
Statement as written in the source
Lemma conj_mx_orthogonal (Q : 'M[R]_d) : Q \is orthogonalmx -> conj_mx Q \is orthogonalmx.
Used by 1 declaration in 1 file
- this file: goe_conj_integral
forall {R : realType} [d : nat] (Q : 'M_d) (a : 'rV_(d * d)), Q^T *m goe_mx a *m Q = goe_mx (a *m conj_mx Q)
Statement as written in the source
Used by 1 declaration in 1 file
- this file: goe_conj_integral
forall {R : realType} [d : nat], measurable_fun [set: 'rV_(d * d)] (goe_mx (d:=d))
Statement as written in the source
Lemma measurable_goe_mx : measurable_fun [set: 'rV[R]_(d * d)] (@goe_mx R d).
Used by 2 declarations in 2 files
- GaussianAnalysis.random_matrix.goe_entries: measurable_goe_entry
- GaussianApplications.SKGap.Disorder: sk_good_disorder_measurable
forall {R : realType} [d : nat] [Q : 'M_d] [F : 'M_d -> \bar R], Q \is orthogonalmx -> measurable_fun [set: 'rV_(d * d)] (fun a : 'rV_(d * d) => F (goe_mx a)) -> (\int[gauss (d * d)]_a F (Q^T *m goe_mx a *m Q))%E = (\int[gauss (d * d)]_a F (goe_mx a))%E
The law of the GOE is invariant under conjugation by an orthogonal matrix: Q^T W Q has the law of W.
The law of the GOE matrix W is invariant under W |-> Q^T W Q for every orthogonal Q. For F equivariant (F (Q W Q^T) = Q F(W) Q^T for every orthogonal Q and symmetric W) and every unit row vector u, u F(W) u^T has the law of F(W)_00: a Householder reflection maps the first basis vector to u.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: goe_equiv_form
Context {R : realType}. Implicit Types n : nat.
forall {R : realType} [n : nat], ('M_n -> 'M_n) -> Prop
Definition conj_equivariant n (F : 'M[R]_n -> 'M[R]_n) : Prop := forall Q W : 'M[R]_n, Q \is orthogonalmx -> W \is symmetricmx -> F (Q *m W *m Q^T) = Q *m F W *m Q^T.
F commutes with the conjugations by orthogonal matrices on the symmetric matrices, as the spectral functions P^T diag(d) P |-> P^T diag(f (d_i)) P do.
Stated in the README together with goe_conj_integral.
Used by 1 declaration in 1 file
- this file: goe_diag_var_tail
forall {R : realType} [n : nat], 'M_n -> RDefinition diag_var n (A : 'M[R]_n) : R := n%:R^-1 * \sum_j (A j j - \tr A / n%:R) ^+ 2.
The empirical variance of the diagonal entries of A.
Stated in the README together with goe_diag_var_identity.
Used by 5 declarations in 1 file
forall {R : realType} [n : nat] (A : 'M_n), 0 <= diag_var A
Statement as written in the source
Lemma diag_var_ge0 n (A : 'M[R]_n) : 0 <= diag_var A.
Used by 2 declarations in 1 file
- this file: trace_sqr_le, goe_diag_var_tail
forall {R : realType} [n : nat] (A : 'M_n), diag_var A = n%:R^-1 * \sum_j A j j ^+ 2 - (\tr A / n%:R) ^+ 2
Statement as written in the source
Lemma diag_varE n (A : 'M[R]_n) : diag_var A = n%:R^-1 * \sum_j A j j ^+ 2 - (\tr A / n%:R) ^+ 2.
Used by 3 declarations in 1 file
- this file: trace_sqr_le, goe_diag_var_identityS, goe_diag_var_tail
forall {R : realType} [n : nat] (A : 'M_n), \sum_j A j j ^+ 2 <= mxdot A A
Statement as written in the source
Lemma diag_sqr_le n (A : 'M[R]_n) : \sum_j A j j ^+ 2 <= mxdot A A.
Used by 2 declarations in 1 file
- this file: trace_sqr_le, goe_diag_var_tail
forall {R : realType} [n : nat] (A : 'M_n), (\tr A / n%:R) ^+ 2 <= mxdot A A / n%:R
(tr A / n)^2 <= |A|_F^2 / n.
Statement as written in the source
Lemma trace_sqr_le n (A : 'M[R]_n) : (\tr A / n%:R) ^+ 2 <= mxdot A A / n%:R.
Used by 1 declaration in 1 file
- this file: goe_diag_var_tail
Context {R : realType} (m : nat).
forall {R : realType} [m : nat] [f : 'rV_m -> R] [c : R], 0 < c -> measurable_fun [set: 'rV_m] f -> (forall x : 'rV_m, 0 <= f x) -> (gauss m).-integrable [set: 'rV_m] (EFin \o f) -> (gauss m [set x | (c <= f x)%R] <= (c^-1 * \int[gauss m]_x f x)%:E)%E
Markov's inequality: P(f >= c) <= E f / c for f >= 0 and c > 0.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: goe_diag_var_tail
Context {R : realType} (d : nat). Local Notation N := d.+1. Variable F : 'M[R]_N -> 'M[R]_N. Hypothesis Feq : conj_equivariant F. Hypothesis Fm : measurable_fun [set: 'rV[R]_(N * N)] (fun a => F (goe_mx a)).
forall {R : realType} [d : nat] (X : 'M_d.+1) (i j : 'I_d.+1), ('e_i *m X *m delta_mx j 0 : 'cV_1) 0 0 = X i j
Statement as written in the source
Lemma mulmx_delta_entry0 (X : 'M[R]_N) (i j : 'I_N) : (delta_mx 0 i *m X *m delta_mx j 0 : 'M[R]_1) 0 0 = X i j.
Used by 2 declarations in 1 file
- this file: goe_equiv_form, goe_equiv_diag
forall {R : realType} [d : nat] [F : 'M_d.+1 -> 'M_d.+1], conj_equivariant F -> measurable_fun [set: 'rV_(d.+1 * d.+1)] (fun a : 'rV_(d.+1 * d.+1) => F (goe_mx a)) -> forall [u : 'rV_d.+1] [phi : R -> \bar R], mxdot u u = 1 -> measurable_fun [set: R] phi -> (\int[gauss (d.+1 * d.+1)]_a phi ((u *m F (goe_mx a) *m u^T) ord0 ord0))%E = (\int[gauss (d.+1 * d.+1)]_a phi (F (goe_mx a) ord0 ord0))%E
For every unit vector u, u F(W) u^T has the law of F(W)_00: a Householder reflection maps the first basis vector to u.
Stated in the README together with goe_conj_integral.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: goe_equiv_formR
forall {R : realType} [d : nat] [F : 'M_d.+1 -> 'M_d.+1], conj_equivariant F -> measurable_fun [set: 'rV_(d.+1 * d.+1)] (fun a : 'rV_(d.+1 * d.+1) => F (goe_mx a)) -> forall [u : 'rV_d.+1] [phi : R -> R], mxdot u u = 1 -> measurable_fun [set: R] phi -> \int[gauss (d.+1 * d.+1)]_a phi ((u *m F (goe_mx a) *m u^T) ord0 ord0) = \int[gauss (d.+1 * d.+1)]_a phi (F (goe_mx a) ord0 ord0)
Statement as written in the source
Used by 2 declarations in 1 file
- this file: goe_equiv_diag, goe_equiv_pair
forall {R : realType} [d : nat] [F : 'M_d.+1 -> 'M_d.+1], conj_equivariant F -> measurable_fun [set: 'rV_(d.+1 * d.+1)] (fun a : 'rV_(d.+1 * d.+1) => F (goe_mx a)) -> forall (i : 'I_d.+1) [phi : R -> R], measurable_fun [set: R] phi -> \int[gauss (d.+1 * d.+1)]_a phi (F (goe_mx a) i i) = \int[gauss (d.+1 * d.+1)]_a phi (F (goe_mx a) ord0 ord0)
The diagonal entries of F(W) have the law of F(W)_00.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: goe_equiv_diag2
Hypothesis Fsym : forall W : 'M[R]_N, W \is symmetricmx -> F W \is symmetricmx.
forall {R : realType} [d : nat] [F : 'M_d.+1 -> 'M_d.+1], conj_equivariant F -> measurable_fun [set: 'rV_(d.+1 * d.+1)] (fun a : 'rV_(d.+1 * d.+1) => F (goe_mx a)) -> (forall W : 'M_d.+1, W \is symmetricmx -> F W \is symmetricmx) -> forall [i j : 'I_d.+1] [s : R] [phi : R -> R], i != j -> s ^+ 2 = 1 -> measurable_fun [set: R] phi -> \int[gauss (d.+1 * d.+1)]_a phi ((F (goe_mx a) i i + F (goe_mx a) j j) / 2 + s * F (goe_mx a) i j) = \int[gauss (d.+1 * d.+1)]_a phi (F (goe_mx a) ord0 ord0)
For i != j and s = 1 or s = -1, (F(W)_ii + F(W)_jj) / 2 + s F(W)_ij has the law of F(W)_00: take u = (e_i + s e_j) / sqrt 2.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: goe_equiv_pair2
Hypothesis Fi : forall i j : 'I_N, (gauss (N * N)).-integrable [set: 'rV[R]_(N * N)] (EFin \o (fun a => F (goe_mx a) i j ^+ 2)). Local Notation qint f := ((gauss (N * N)).-integrable [set: 'rV[R]_(N * N)] (EFin \o f)).
Let mX (i j : 'I_N) : measurable_fun [set: 'rV[R]_(N * N)] (fun a => F (goe_mx a) i j).
Let qintD (f g : 'rV[R]_(N * N) -> R) : qint f -> qint g -> qint (fun a => f a + g a).
Used by 3 declarations in 1 file
- this file: qint_sum, qintXX, goe_equiv_pair2
Let qintZ (k : R) (f : 'rV[R]_(N * N) -> R) : qint f -> qint (fun a => k * f a).
Used by 1 declaration in 1 file
- this file: goe_equiv_pair2
Let qintB (f g : 'rV[R]_(N * N) -> R) : qint f -> qint g -> qint (fun a => f a - g a).
Let qint_sum (I : Type) (s : seq I) (f : I -> 'rV[R]_(N * N) -> R) : (forall i, qint (f i)) -> qint (fun a => \sum_(i <- s) f i a).
Used by 2 declarations in 1 file
- this file: Rint_sum2, goe_diag_var_identityS
Used by 2 declarations in 1 file
- this file: goe_equiv_pair2, goe_diag_var_identityS
Let Rint_sum2 (f : 'I_N -> 'I_N -> 'rV[R]_(N * N) -> R) : (forall i j, qint (f i j)) -> \int[gauss (N * N)%N]_a (\sum_i \sum_j f i j a) = \sum_i \sum_j \int[gauss (N * N)%N]_a f i j a.
Used by 1 declaration in 1 file
- this file: goe_diag_var_identityS
Let RintD (f g : 'rV[R]_(N * N) -> R) : qint f -> qint g -> \int[gauss (N * N)%N]_a (f a + g a) = \int[gauss (N * N)%N]_a f a + \int[gauss (N * N)%N]_a g a.
Used by 1 declaration in 1 file
- this file: goe_equiv_pair2
Let RintB (f g : 'rV[R]_(N * N) -> R) : qint f -> qint g -> \int[gauss (N * N)%N]_a (f a - g a) = \int[gauss (N * N)%N]_a f a - \int[gauss (N * N)%N]_a g a.
Used by 1 declaration in 1 file
- this file: goe_diag_var_identityS
Let RintZ (k : R) (f : 'rV[R]_(N * N) -> R) : qint f -> \int[gauss (N * N)%N]_a (k * f a) = k * \int[gauss (N * N)%N]_a f a.
Used by 2 declarations in 1 file
- this file: goe_equiv_pair2, goe_diag_var_identityS
Let msq : measurable_fun [set: R] (fun x : R => x ^+ 2).
Used by 2 declarations in 1 file
- this file: goe_equiv_diag2, goe_equiv_pair2
forall {R : realType} [d : nat] [F : 'M_d.+1 -> 'M_d.+1], conj_equivariant F -> measurable_fun [set: 'rV_(d.+1 * d.+1)] (fun a : 'rV_(d.+1 * d.+1) => F (goe_mx a)) -> forall i : 'I_d.+1, \int[gauss (d.+1 * d.+1)]_a (F (goe_mx a) i i * F (goe_mx a) i i) = \int[gauss (d.+1 * d.+1)]_a F (goe_mx a) ord0 ord0 ^+ 2
E[F(W)_ij^2] and E[F(W)_ii F(W)_jj] in terms of c0 = E[F(W)_00^2].
Statement as written in the source
Used by 2 declarations in 1 file
- this file: goe_equiv_pair2, goe_diag_var_identityS
forall {R : realType} [d : nat] [F : 'M_d.+1 -> 'M_d.+1], conj_equivariant F -> measurable_fun [set: 'rV_(d.+1 * d.+1)] (fun a : 'rV_(d.+1 * d.+1) => F (goe_mx a)) -> (forall W : 'M_d.+1, W \is symmetricmx -> F W \is symmetricmx) -> (forall i j : 'I_d.+1, (gauss (d.+1 * d.+1)).-integrable [set: 'rV_(d.+1 * d.+1)] (EFin \o (fun a : 'rV_(d.+1 * d.+1) => F (goe_mx a) i j ^+ 2))) -> forall [i j : 'I_d.+1], i != j -> \int[gauss (d.+1 * d.+1)]_a (F (goe_mx a) i i * F (goe_mx a) j j) + 2 * \int[gauss (d.+1 * d.+1)]_a (F (goe_mx a) i j * F (goe_mx a) i j) = \int[gauss (d.+1 * d.+1)]_a F (goe_mx a) ord0 ord0 ^+ 2
Statement as written in the source
Used by 1 declaration in 1 file
- this file: goe_diag_var_identityS
forall {R : realType} [d : nat] [F : 'M_d.+1 -> 'M_d.+1], conj_equivariant F -> measurable_fun [set: 'rV_(d.+1 * d.+1)] (fun a : 'rV_(d.+1 * d.+1) => F (goe_mx a)) -> (forall W : 'M_d.+1, W \is symmetricmx -> F W \is symmetricmx) -> (forall i j : 'I_d.+1, (gauss (d.+1 * d.+1)).-integrable [set: 'rV_(d.+1 * d.+1)] (EFin \o (fun a : 'rV_(d.+1 * d.+1) => F (goe_mx a) i j ^+ 2))) -> \int[gauss (d.+1 * d.+1)]_a diag_var (F (goe_mx a)) = 2 / (d.+1%:R + 2) * \int[gauss (d.+1 * d.+1)]_a (mxdot (F (goe_mx a)) (F (goe_mx a)) / d.+1%:R - (\tr (F (goe_mx a)) / d.+1%:R) ^+ 2)
Lemma 5.13 of Koehler and Sohn without the Haar measure, for N = d + 1.
Statement as written in the source
Used by 1 declaration in 1 file
- this file: goe_diag_var_identity
Context {R : realType} (n : nat). Variable F : 'M[R]_n -> 'M[R]_n. Hypothesis Feq : conj_equivariant F. Hypothesis Fsym : forall W : 'M[R]_n, W \is symmetricmx -> F W \is symmetricmx. Hypothesis Fm : measurable_fun [set: 'rV[R]_(n * n)] (fun a => F (goe_mx a)).
forall {R : realType} [n : nat] [F : 'M_n -> 'M_n], conj_equivariant F -> (forall W : 'M_n, W \is symmetricmx -> F W \is symmetricmx) -> measurable_fun [set: 'rV_(n * n)] (fun a : 'rV_(n * n) => F (goe_mx a)) -> (forall i j : 'I_n, (gauss (n * n)).-integrable [set: 'rV_(n * n)] (EFin \o (fun a : 'rV_(n * n) => F (goe_mx a) i j ^+ 2))) -> \int[gauss (n * n)]_a diag_var (F (goe_mx a)) = 2 / (n%:R + 2) * \int[gauss (n * n)]_a (mxdot (F (goe_mx a)) (F (goe_mx a)) / n%:R - (\tr (F (goe_mx a)) / n%:R) ^+ 2)
Lemma 5.13 of Koehler and Sohn, with the GOE instead of a Haar matrix: for F equivariant and E |F(W)|_F^2 finite, the diagonal of F(W) has E[diag_var F(W)] = 2 / (n + 2) E[|F(W)|_F^2 / n - (tr F(W) / n)^2].
Lemma 5.13 of Koehler and Sohn without the Haar measure. For F equivariant with F(W) symmetric and E F(W)_ij^2 finite, E[diag_var F(W)] = 2 / (n + 2) E[|F(W)|_F^2 / n - (tr F(W) / n)^2], where diag_var A is the empirical variance of the diagonal of A. Without moment assumptions, P(diag_var F(W) >= eps) <= 2 C / ((n + 2) eps) + P(|F(W)|_F^2 > C n) for every C >= 0 and eps > 0.
Statement as written in the source
Theorem goe_diag_var_identity : (forall i j : 'I_n, (gauss (n * n)).-integrable [set: 'rV[R]_(n * n)] (EFin \o (fun a => F (goe_mx a) i j ^+ 2))) -> \int[gauss (n * n)%N]_a diag_var (F (goe_mx a)) = 2 / (n%:R + 2) * \int[gauss (n * n)%N]_a (mxdot (F (goe_mx a)) (F (goe_mx a)) / n%:R - (\tr (F (goe_mx a)) / n%:R) ^+ 2).
Used by 1 declaration in 1 file
- this file: goe_diag_var_tail
Context {R : realType} (n : nat). Variable F : 'M[R]_n -> 'M[R]_n. Hypothesis Feq : conj_equivariant F. Hypothesis Fsym : forall W : 'M[R]_n, W \is symmetricmx -> F W \is symmetricmx. Hypothesis Fm : measurable_fun [set: 'rV[R]_(n * n)] (fun a => F (goe_mx a)).
forall {R : realType} [n : nat] [F : 'M_n -> 'M_n], conj_equivariant F -> (forall W : 'M_n, W \is symmetricmx -> F W \is symmetricmx) -> measurable_fun [set: 'rV_(n * n)] (fun a : 'rV_(n * n) => F (goe_mx a)) -> forall [C eps : R], 0 <= C -> 0 < eps -> (gauss (n * n) [set a | (eps <= diag_var (F (goe_mx a)))%R] <= (2 * C / ((n%:R + 2) * eps))%:E + gauss (n * n) [set a | (C * n%:R < mxdot (F (goe_mx a)) (F (goe_mx a)))%R])%E
The diagonal of F(W) is nearly constant: for C >= 0 and eps > 0, P(diag_var F(W) >= eps) <= 2 C / ((n + 2) eps) + P(|F(W)|_F^2 > C n). The second term is small when |F(W)|_F^2 / n is bounded in probability, as for the positive part of W - w I with w bounded.
Stated in the README together with goe_diag_var_identity.