The Cartan Decomposition of GL(n,K) for K a discretely valued field #
We establish the Cartan decomposition of GL(n,K) for K a discretely valued field.
Given K as the fraction field of a DVR R with uniformizer ϖ, the Cartan decomposition
says that any matrix g ∈ GL(n,K) can be written as a product k_1 * diag * k_2, where
k_i ∈ GL(n,R) and diag is a diagonal matrix with entries increasing powers of the
uniformizer.
There is an analogue where one uses decreasing powers instead, both versions are used in mathematics. We only show the "increasing" version.
Most of the linear algebra preparations below are for arbitrary valuation rings. Only from line 628 onwards we specialize to DVRs.
Implementation details #
This is inspired by the file https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Matrix/Transvection.html.
We can normalize any g : Matrix (Fin k) (Fin k) K such that the coefficient on the bottom
right has maximal valuation.
We can normalize any g : Matrix (Fin k) (Fin k) K such that the coefficient on the bottom
right has maximal valuation and the maximal valuation is unchanged.
The maximal valuation of the coefficients of any element of GL (Fin k) K is non-zero.
The element of R used to eliminate the last row and column of g if
the coefficient in the bottom-right has maximal valuation.
Equations
Instances For
The transvection struct in R for the transvection eliminating the j-th entry in the last
row of g, where the bottom-right element of g has maximal valuation.
Equations
- rowEliminationTransvection g h j = { i := Sum.inr (), j := Sum.inl j, hij := ⋯, c := multFactor g h j }
Instances For
Multiplying on the right with rowEliminationTransvection kills all elements in the first row
but the first.
After multiplying on the right with rowEliminationTransvection, the maximal valuation
of the coefficients does not change.
The row transvections used to eliminate the last row away from the diagonal.
Equations
- rowEliminationList g h = List.ofFn fun (j : Fin ↑k) => rowEliminationTransvection g h j
Instances For
The matrix form of rowEliminationList.
Equations
- rowEliminationListMatrix g h = List.ofFn fun (j : Fin ↑k) => (rowEliminationTransvection g h j).toMatrix.map ⇑R.subtype
Instances For
The product of row transvections eliminating the last row away from the diagonal.
Equations
- rowEliminator g h = (List.map (fun (t : Matrix.TransvectionStruct (Fin ↑k ⊕ Unit) ↥R) => t.toGL) (rowEliminationList g h)).prod
Instances For
The column eliminator, defined by transposing and applying the row eliminator.
Equations
- colEliminator g h = Matrix.GL.transpose (rowEliminator g.transpose ⋯)
Instances For
A (k + 1) × (k + 1) matrix is of normal block form, if it is block diagonal and
the bottom-right coefficient has maximal valuation.
- isTwoBlockDiagonal : g.IsTwoBlockDiagonal
- monotone : (ValuationRing.valuation (↥R) K) (g (Sum.inr ()) (Sum.inr ())) = Matrix.coeffsSup (ValuationRing.valuation (↥R) K) g
Instances For
A matrix is monotone diagonal if it is diagonal and the coefficients on the diagonal have monotonically increasing valuations.
- isDiag : g.IsDiag
- monotone : Monotone fun (j : n) => (ValuationRing.valuation (↥R) K) (g j j)
Instances For
An equivalent spelling of IsMonotoneDiag for (k + 1) × (k + 1)-matrices.
- isDiag : g.IsDiag
- monotone : Monotone fun (j : Fin ↑k) => (ValuationRing.valuation (↥R) K) (g (Sum.inl j) (Sum.inl j))
- max_bot_right : (ValuationRing.valuation (↥R) K) (g (Sum.inr ()) (Sum.inr ())) = Matrix.coeffsSup (ValuationRing.valuation (↥R) K) g
Instances For
The cartan diagonal for a tuple of integers f is the diagonal matrix
where the diagonal entries are given by ϖ ^ f i.
Equations
- cartanDiag ϖ hϖ f = Matrix.GL.diagonal fun (j : Fin k) => { val := ↑ϖ ^ f j, inv := ↑ϖ ^ (-f j), val_inv := ⋯, inv_val := ⋯ }
Instances For
Existence part of cartan decomposition: If R is a discrete valuation ring with
uniformizer ϖ and g an invertible matrix over K, then there exist invertible matrices k₁ and
k₂ over R such that k₁ * g * k₂ is a diagonal matrix with decreasing powers of ϖ on the
diagonal.
See cartan_decomposition' for a version where instead g is written as a product.
Variant of cartan_decomposition where g is written as a product.