4 Lyapunov exponents and the limsup filtration
This chapter constructs, from the linear cocycle \(A\) over the measure-preserving system \(T\), the geometric scaffolding of the Oseledets theorem: a per-vector growth rate, the finite Lyapunov spectrum it produces, and the decreasing flag of subspaces along which the cocycle grows at exactly the prescribed rates. Throughout, \(A \colon X \to \mathrm{Mat}_{d\times d}(\mathbb {R})\) is invertible (\(\det (A x)\neq 0\)) and acts on \(v\in \mathbb {R}^d\) through the Euclidean representation \(\mathtt{toEuclideanCLM}(M)\colon v\mapsto M\cdot v\). Two abstract ingredients are imported: the Furstenberg–Kesten extremal exponents (the a.e. limits of \(\tfrac 1n\log \left\lVert A^{(n)}(x) \right\rVert \) and \(\tfrac 1n\log \left\lVert A^{(n)}(x)^{-1} \right\rVert \)) and the subadditive ergodic theorem of Kingman (). The headline statement assembled downstream from this material is .
4.1 Ultrametric growth functions
The combinatorial heart of the construction is purely linear-algebraic: a scaling-invariant, non-Archimedean real function on the nonzero vectors of a real vector space has only finitely many values, and its sublevel sets are subspaces. We isolate this with no reference to dynamics.
Let \(E\) be a real vector space. A function \(g\colon E\to \mathbb {R}\) is an ultrametric growth function when it is scaling-invariant,
and non-Archimedean (strong triangle inequality),
The value \(g(0)\) is never used; the side conditions \(v\neq 0\) are carried explicitly to avoid extended-real arithmetic.
If \(g\) is an ultrametric growth function and \(g(v)\neq g(w)\) (with \(v,w,v+w\) nonzero), then \(g(v+w)=\max (g(v),g(w))\).
By symmetry (\(v+w=w+v\)) assume \(g(v){\lt}g(w)\), so \(\max =g(w)\). The non-Archimedean inequality gives \(g(v+w)\le g(w)\). Conversely \(w=(v+w)+(-v)\) and \(g(-v)=g(v)\) (scaling by \(-1\)), so \(g(w)\le \max (g(v+w),g(v))\). Were \(g(v+w){\lt}g(w)\), then both arguments of this \(\max \) would be \({\lt}g(w)\), contradicting the bound. Hence \(g(w)\le g(v+w)\), giving equality.
Let \(g\) be an ultrametric growth function, \(s\) a nonempty finite index set, and \(v\colon s\to E\) a family of nonzero vectors with \(g\circ v\) injective on \(s\). Then \(\sum _{i\in s} v_i \neq 0\) and \(g\bigl(\sum _{i\in s} v_i\bigr) = \sup _{i\in s} g(v_i)\).
Strong induction on \(s\), peeling off one element \(a\). For the inductive step, the tail sum is nonzero with \(g\)-value \(g(v_b)\) for some \(b\) in the tail; since \(g(v_a)\neq g(v_b)\), 4.2 applies to \(v_a + \sum _{\text{tail}} v_i\), yielding both nonvanishing and the equality of the value with the new maximum. The two conclusions are proved jointly because each step needs the tail subsum to be nonzero.
If \(g\) is an ultrametric growth function and \(v\colon \iota \to E\) is a family of nonzero vectors with \(g\circ v\) injective, then \(v\) is linearly independent over \(\mathbb {R}\).
Suppose \(\sum _{j} c_j v_j = 0\) with some \(c_i\neq 0\). Restrict to the support \(t=\{ j : c_j\neq 0\} \ni i\), nonempty. The scaled vectors \(c_j v_j\) are nonzero, and \(g(c_j v_j)=g(v_j)\) by scaling-invariance, so \(g\circ (c\cdot v)\) is still injective on \(t\). By 4.3 the support sum is nonzero, contradicting \(\sum _{j\in t} c_j v_j=0\).
If \(E\) is finite-dimensional and \(g\) is an ultrametric growth function, then \(\{ g(v) : v\neq 0\} \) is finite, with at most \(\dim _{\mathbb {R}} E\) elements.
If the value set were infinite, pick \(\dim _{\mathbb {R}} E + 1\) distinct values and witnessing nonzero vectors. By 4.4 these are linearly independent, exceeding \(\dim _{\mathbb {R}} E\), a contradiction.
For an ultrametric growth function \(g\) and threshold \(t\in \mathbb {R}\), the sublevel set
is a submodule of \(E\): it contains \(0\); closure under addition is the non-Archimedean inequality together with \(\max (g v,g w)\le t\); closure under scaling is scaling-invariance. These submodules are monotone in \(t\) (sublevel_mono).
4.2 The upper Lyapunov growth function
We now instantiate the abstract machinery at the per-vector logarithmic growth rate of the cocycle.
For \(x\in X\) and \(v\in \mathbb {R}^d\) the growth sequence is
where \(A^{(n)}(x)=\mathtt{cocycle}\, A\, T\, n\, x\) is the \(n\)-step cocycle iterate acting on \(v\) via \(\mathtt{toEuclideanCLM}\).
The upper Lyapunov growth function is the \(\limsup \) of the growth sequence,
The basic per-\(n\) sandwich is the submultiplicativity of the operator norm: \(\left\lVert A^{(n)}(x)^{-1} \right\rVert ^{-1}\left\lVert v \right\rVert \le \left\lVert A^{(n)}(x)\cdot v \right\rVert \le \left\lVert A^{(n)}(x) \right\rVert \, \left\lVert v \right\rVert \), which after taking \(\tfrac 1n\log \) pins \(\mathrm{growthSeq}\) between two sequences differing from the Furstenberg–Kesten data by a term tending to \(0\). This yields both boundedness and finiteness.
For \(c\neq 0\) and \(v\neq 0\), \(\bar\lambda (c\cdot v)=\bar\lambda (v)\).
By linearity \(\left\lVert A^{(n)}(x)(c\cdot v) \right\rVert =\left\lvert c \right\rvert \, \left\lVert A^{(n)}(x)v \right\rVert \), so the two growth sequences differ by \(\tfrac 1n\log \left\lvert c \right\rvert \), which \(\to 0\). A \(\limsup \) is unchanged under a perturbation tending to zero (a robust helper proved directly on the defining sets \(\{ a:\forall ^{\infty } n,\ u_n\le a\} \), with no boundedness hypothesis). The bound is unconditional.
Assume \(T\) ergodic on a probability space, \(A\) measurable and invertible, with \(\log \left\lVert A \right\rVert \) and \(\log \left\lVert A^{-1} \right\rVert \) integrable. Then there exist \(\lambda _{\mathrm{bot}}\le \lambda _{\mathrm{top}}\) such that for a.e. \(x\) and every \(v\neq 0\), \(\bar\lambda (v)\in [\lambda _{\mathrm{bot}},\lambda _{\mathrm{top}}]\).
Take \(\lambda _{\mathrm{top}}\) and \(\lambda _k'\) from the Furstenberg–Kesten limits of \(\tfrac 1n\log \left\lVert A^{(n)} \right\rVert \) and \(\tfrac 1n\log \left\lVert (A^{(n)})^{-1} \right\rVert \), and set \(\lambda _{\mathrm{bot}}=-\lambda _k'\). The ordering follows from \(\left\lVert A^{(n)} \right\rVert \left\lVert (A^{(n)})^{-1} \right\rVert \ge 1\). On the intersection of the two full-measure convergence sets, the upper sandwich bounds \(\bar\lambda (v)=\limsup \mathrm{growthSeq}\) above by \(\lambda _{\mathrm{top}}\), while the lower sandwich bounds the \(\liminf \) below by \(-\lambda _k'\); since \(\liminf \le \limsup \) the value lies in the interval.
For nonzero \(v,w,v+w\), if the three growth sequences are bounded, then \(\bar\lambda (v+w)\le \max (\bar\lambda (v),\bar\lambda (w))\).
From the triangle inequality \(\left\lVert A^{(n)}(v+w) \right\rVert \le \left\lVert A^{(n)}v \right\rVert +\left\lVert A^{(n)}w \right\rVert \le 2\max (\left\lVert A^{(n)}v \right\rVert ,\left\lVert A^{(n)}w \right\rVert )\), taking \(\tfrac 1n\log \) gives \(\mathrm{growthSeq}(v+w)(n)\le \tfrac 1n\log 2 + \max (\mathrm{growthSeq}(v)(n),\mathrm{growthSeq}(w)(n))\). The term \(\tfrac 1n\log 2\to 0\), and \(\limsup \max =\max \limsup \) for bounded sequences, giving the claim.
Under the hypotheses of 4.10, for a.e. \(x\) the function \(v\mapsto \bar\lambda (v)\) is an ultrametric growth function.
Under the same hypotheses, for a.e. \(x\) and every \(v\neq 0\),
The cocycle identity \(A^{(n+1)}(x)=A^{(n)}(Tx)\, A(x)\) gives \(\mathrm{growthSeq}_x(v)(n+1)=\tfrac 1{n+1}\log \left\lVert A^{(n)}(Tx)(A x\cdot v) \right\rVert \). Reindexing the \(\limsup \) by one, the two scalings differ by \((\tfrac 1{n+1}-\tfrac 1n)\log \left\lVert \cdot \right\rVert =-\tfrac 1{n+1}\cdot (\tfrac 1n\log \left\lVert \cdot \right\rVert )\), which tends to \(0\) precisely because \(\tfrac 1n\log \left\lVert \cdot \right\rVert \) is bounded. The boundedness is needed at the image point \(Tx\); it holds a.e. in \(x\) by pulling back the a.e. boundedness at a generic point through the measure-preserving \(T\).
4.3 The Lyapunov spectrum and the descending exponent list
The Lyapunov spectrum at \(x\) is the finite set of realized values
defined as a Finset via 4.5 on the good set where \(\bar\lambda _x\) is an ultrametric growth function, and as \(\emptyset \) off it. A value lies in it iff it is realized by some nonzero vector.
Write \(k=\mathrm{specCard}(A,T,x)\) for the number of distinct exponents (the cardinality of the spectrum). The exponent list \(\mathrm{specList}\colon \mathrm{Fin}\, k\to \mathbb {R}\) enumerates the spectrum in strictly descending order, \(\lambda _0{\gt}\lambda _1{\gt}\cdots {\gt}\lambda _{k-1}\), obtained from the order embedding of the finset composed with index reversal. It is strictly antitone, every \(\mathrm{specList}(i)\) lies in the spectrum, and every spectrum value is \(\mathrm{specList}(i)\) for a unique \(i\).
4.4 The limsup filtration
The sublevel subspace at threshold \(t\),
is the submodule 4.6 of \(\bar\lambda _x\) at \(t\) on the good set, and \(\bot \) off it.
The limsup flag at \(x\) is the family \(\mathrm{vflag}(A,T,x)\colon \mathrm{Fin}\, (k+1)\to \mathrm{Submodule}\) with
With the descending enumeration, level \(j\) is the sublevel set at \(\lambda _j\), so the flag decreases from the whole space down to \(\bot \).
On the good set, \(\mathrm{vflag}(A,T,x)(0)=\top \); and unconditionally \(\mathrm{vflag}(A,T,x)(\mathrm{last})=\bot \) (vflag_last).
For any \(v\neq 0\), \(\bar\lambda _x(v)\) lies in the spectrum, so \(k{\gt}0\) and \(\mathrm{specList}(0)\) is the maximum of the spectrum; thus \(\bar\lambda _x(v)\le \mathrm{specList}(0)\) and \(v\) lies in level \(0\). Level \(k\) is \(\bot \) by definition.
On the good set, \(\mathrm{vflag}(A,T,x)(i{+}1) \subsetneq \mathrm{vflag}(A,T,x)(i)\) for each interior index \(i\).
Inclusion: since \(\mathrm{specList}\) is strictly antitone, \(\mathrm{specList}(i{+}1){\lt}\mathrm{specList}(i)\), so the sublevel at the smaller threshold is contained in that at the larger. Strictness: a witness \(w\) with \(\bar\lambda _x(w)=\mathrm{specList}(i)\) exists (the value is realized); it lies in level \(i\) but its value exceeds \(\mathrm{specList}(i{+}1)\), so it is not in level \(i{+}1\).
On the good set, if \(v\in \mathrm{vflag}(A,T,x)(i)\) but \(v\notin \mathrm{vflag}(A,T,x)(i{+}1)\), then \(\bar\lambda _x(v)=\mathrm{specList}(i)=\lambda _i\).
Membership in level \(i\) gives \(\bar\lambda _x(v)\le \lambda _i\). Since \(\bar\lambda _x(v)\) is a spectrum value, \(\bar\lambda _x(v)=\lambda _j\) for some \(j\ge i\). Non-membership in level \(i{+}1\) rules out \(\bar\lambda _x(v)\le \lambda _{i+1}\), forcing \(j\le i\). Hence \(j=i\) by injectivity of the strictly antitone list.
Under the standing hypotheses, for a.e. \(x\) the spectrum is invariant, \(\mathrm{lyapunovSpectrum}(A,T,x)=\mathrm{lyapunovSpectrum}(A,T,Tx)\) (lyapunovSpectrum_equivariant_ae), and the action of \(A x\) maps each flag level (each sublevel subspace) at \(x\) onto the corresponding level at \(Tx\):
The bijection \(v\mapsto A x\cdot v\) preserves \(\bar\lambda \) by 4.13 (a.e.), hence carries witnesses at \(x\) to witnesses at \(Tx\) and conversely (using \((A x)^{-1}\)), giving the spectrum identity. The same value-preserving bijection sends \(\{ v=0\lor \bar\lambda _x(v)\le t\} \) onto \(\{ w=0\lor \bar\lambda _{Tx}(w)\le t\} \), which is the claimed image of sublevel sets.
4.5 Measurability of the filtration
The Oseledets theorem requires the flag to vary measurably in \(x\). Mathlib has no measurable structure on submodules, so we encode a subspace by its orthogonal-projection matrix.
For \(K\le \mathbb {R}^d\), \(\mathrm{orthProjMatrix}(K)\) is the matrix of the orthogonal projection onto \(K\), namely the preimage of \(K.\mathtt{starProjection}\) under the star-algebra isomorphism \(\mathtt{toEuclideanCLM}\). A subspace is determined by this matrix, which lives in a space carrying the Borel/Pi measurable structure. Its \((i,j)\) entry equals the \(i\)-th coordinate of the projection applied to the standard basis vector \(e_j\) (orthProjMatrix_apply).
A subspace-valued map \(V\colon X\to \mathrm{Submodule}\, \mathbb {R}\, \mathbb {R}^d\) is a measurable family of subspaces when \(x\mapsto \mathrm{orthProjMatrix}(V x)\) is measurable. Equivalently (measurable_orthProjMatrix_iff), for each standard basis index \(j\) the \(\mathbb {R}^d\)-valued map \(x\mapsto (V x).\mathtt{starProjection}(e_j)\) is measurable.
For fixed \(v\), the map \(x\mapsto \bar\lambda _x(v)\) is measurable.
It is the \(\limsup \) of the sequence \(x\mapsto \tfrac 1n\log \left\lVert A^{(n)}(x)\cdot v \right\rVert \). Each term is measurable: \(x\mapsto A^{(n)}(x)\) is measurable (measurability of the cocycle), and \(M\mapsto \left\lVert M\cdot v \right\rVert \) is continuous (a fixed-vector linear map of \(M\), on a finite-dimensional space, post-composed with the norm), so the composite with \(\log \) is measurable, and a \(\limsup \) of measurable functions is measurable.
For a fixed real polynomial \(q\), the map \(a\mapsto q(a)\) on \(\mathrm{Mat}_{d\times d}(\mathbb {R})\) is measurable.
Induction on \(q\) over the constant/sum/monomial generators, using that matrix addition and multiplication are measurable in each argument (instMeasurableAdd₂Matrix and the matrix MeasurableMul₂ instance), whence \(a\mapsto a^n\) is measurable (measurable_matrix_pow).
Let \(M\colon X\to \mathrm{Mat}_{d\times d}(\mathbb {R})\) be measurable with each \(M x\) self-adjoint, and let \(g\colon \mathbb {R}\to \mathbb {R}\). If a fixed polynomial \(q\) agrees with \(g\) on the spectrum of every \(M x\), then \(x\mapsto \mathrm{cfc}\, g\, (M x)\) is measurable.
On the spectrum of \(M x\) the continuous functional calculus of \(g\) coincides with that of \(q\), and for a polynomial \(\mathrm{cfc}\, q\, (M x)=q(M x)\). Thus pointwise \(\mathrm{cfc}\, g\, (M x)=q(M x)\), which is measurable in \(x\) by 4.25. This uses only the bare Hermitian CFC instance, avoiding the isometric CFC (absent for real matrices) and any measurable selection.
Let \(M\) be measurable with each \(M x\) self-adjoint, and \(f\colon \mathbb {R}\to \mathbb {R}\) continuous. Then \(x\mapsto \mathrm{cfc}\, f\, (M x)\) is measurable.
A single polynomial need not agree with \(f\) on the unbounded family of spectra, so approximate per point: by Weierstrass choose, for each \(k\), a polynomial \(q_k\) with \(\left\lvert q_k-f \right\rvert \le 1/(k{+}1)\) on \([-k,k]\). Each spectrum is finite, hence in some \([-R,R]\), so \(q_k\to f\) uniformly on \(\mathrm{spectrum}(M x)\) and \(\mathrm{cfc}\, q_k\, (M x)\to \mathrm{cfc}\, f\, (M x)\). Each \(x\mapsto \mathrm{cfc}\, q_k\, (M x)=q_k(M x)\) is measurable, and matrix-entrywise the metrizable limit upgrades to measurability of \(x\mapsto \mathrm{cfc}\, f\, (M x)\).
These CFC tools deliver \(\mathrm{MeasurableSubspace}\) for the concrete Oseledets flag once the Oseledets limit operator \(\Lambda x=\lim _n\bigl((A^{(n)})^{\top } A^{(n)}\bigr)^{1/(2n)}\) is available: each flag projection is realized as a spectral band projector \(P_i x=\mathrm{cfc}\, g_i\, (\Lambda x)\) of \(\Lambda x\) for a continuous gap function \(g_i\), so the projection matrix of its range equals \(P_i x\) definitionally, and measurability of \(x\mapsto P_i x\) follows from 4.27 (or, on the gapped good set where the spectrum is the fixed Lyapunov set, from 4.26). This is the measurability input feeding .