Matrix

Results named in Tau Ceti's TauCeti.LinearAlgebra.Matrix modules and in no roadmap's section, as Tau Ceti has them at commit ace60277.

TheoremThe Bruhat decomposition, counted#

the Borel subgroup of GL₂ over a field has exactly two double cosets, indexed by the Weyl group S₂ of GL₂. This is the input to the Mackey irreducibility criterion for the principal series.

TauCeti.GL2Borel.card_doubleCosetQuotient_eq_two.{u} (F : Type u) [Field F] :
  Nat.card (DoubleCoset.Quotient ↑(TauCeti.GL2Borel F) ↑(TauCeti.GL2Borel F)) = 2
Lean

Formalized in Tau Ceti as TauCeti.GL2Borel.card_doubleCosetQuotient_eq_two.

Other forms

The Bruhat decomposition of GL₂, covering half. Formalized in Tau Ceti as TauCeti.GL2Borel.union_doubleCoset_weyl_eq_univ.

TauCeti.GL2Borel.union_doubleCoset_weyl_eq_univ.{u} (F : Type u) [Field F] :
  ↑(TauCeti.GL2Borel F) ∪
      DoubleCoset.doubleCoset (TauCeti.GL2WeylElement F) ↑(TauCeti.GL2Borel F)
        ↑(TauCeti.GL2Borel F) =
    Set.univ

The Bruhat decomposition of GL₂, disjointness half. Formalized in Tau Ceti as TauCeti.GL2Borel.disjoint_doubleCoset_weyl.

TauCeti.GL2Borel.disjoint_doubleCoset_weyl.{u} (F : Type u) [Field F] :
  Disjoint (↑(TauCeti.GL2Borel F))
    (DoubleCoset.doubleCoset (TauCeti.GL2WeylElement F) ↑(TauCeti.GL2Borel F) ↑(TauCeti.GL2Borel F))
Sources

TheoremCauchy--Binet for 2 × 2 minors#

A minor of a product is the sum, over the increasing pairs of the middle index type, of the products of the corresponding minors of the two factors.

Matrix.pairMinor_mul.{u, u_1, u_2, u_3} {m : Type u_1} {n : Type u_2} {R : Type u} [CommRing R]
  {l : Type u_3} [Fintype l] [LinearOrder l] (g : Matrix m l R) (h : Matrix l n R) (p : m × m)
  (q : n × n) : (g * h).pairMinor p q = ∑ ij with ij.1 < ij.2, g.pairMinor p ij * h.pairMinor ij q
Lean

Formalized in Tau Ceti as Matrix.pairMinor_mul.

Other forms

Cauchy--Binet across a four-element middle index type, with the six increasing pairs written out. Formalized in Tau Ceti as Matrix.pairMinor_mul_fin_four.

Matrix.pairMinor_mul_fin_four.{u, u_1, u_2} {m : Type u_1} {n : Type u_2} {R : Type u} [CommRing R]
  (g : Matrix m (Fin 4) R) (h : Matrix (Fin 4) n R) (p : m × m) (q : n × n) :
  (g * h).pairMinor p q =
    g.pairMinor p (0, 1) * h.pairMinor (0, 1) q + g.pairMinor p (0, 2) * h.pairMinor (0, 2) q +
            g.pairMinor p (0, 3) * h.pairMinor (0, 3) q +
          g.pairMinor p (1, 2) * h.pairMinor (1, 2) q +
        g.pairMinor p (1, 3) * h.pairMinor (1, 3) q +
      g.pairMinor p (2, 3) * h.pairMinor (2, 3) q
Sources
Used by 4

TheoremThe Cauchy--Binet identity for the cross product#

A matrix M sends the cross product of u and w to the cross product of their images up to the transposed adjugate of M: (M u) ⨯₃ (M w) = (adj M)ᵀ (u ⨯₃ w).

Matrix.mulVec_cross_mulVec.{u_1} {R : Type u_1} [CommRing R] (M : Matrix (Fin 3) (Fin 3) R)
  (u w : Fin 3 → R) :
  (crossProduct (M.mulVec u)) (M.mulVec w) = M.adjugate.transpose.mulVec ((crossProduct u) w)

TheoremCayley–Hamilton in size two#

a 2 × 2 matrix A satisfies A ^ 2 = (trace A) • A - (det A) • 1.

Matrix.sq_eq_trace_smul_sub_det_smul_one_fin_two.{u_1} {R : Type u_1} [CommRing R]
  (A : Matrix (Fin 2) (Fin 2) R) : A ^ 2 = A.trace • A - A.det • 1
Lean

Formalized in Tau Ceti as Matrix.sq_eq_trace_smul_sub_det_smul_one_fin_two.

Other forms

Cayley–Hamilton along a representation. Formalized in Tau Ceti as Matrix.Represents.aeval_charpoly_eq_zero.

Matrix.Represents.aeval_charpoly_eq_zero.{u_1, u_2, u_3} {ι : Type u_1} [Fintype ι] [DecidableEq ι]
  {R : Type u_2} {M : Type u_3} [CommRing R] [AddCommGroup M] [_root_.Module R M] {b : ι → M}
  (hb : Submodule.span R (Set.range b) = ⊤) {A : Matrix ι ι R} {f : Module.End R M}
  (h : Matrix.Represents b A f) : (Polynomial.aeval f) A.charpoly = 0

Cayley–Hamilton in size two, as a recurrence for the powers of a 2 × 2 matrix. Formalized in Tau Ceti as Matrix.pow_add_two_fin_two.

Matrix.pow_add_two_fin_two.{u_1} {R : Type u_1} [CommRing R] (A : Matrix (Fin 2) (Fin 2) R)
  (n : ℕ) : A ^ (n + 2) = A.trace • A ^ (n + 1) - A.det • A ^ n
Sources
Used by 6

TheoremCollatz–Wielandt bound#

Let A be entrywise nonnegative with A v ≤ r v for a vector v all of whose entries are strictly positive. If t y ≤ A y entrywise for some nonzero nonnegative vector y, then t ≤ r.

Matrix.le_of_smul_le_mulVec.{u_1, u_2} {n : Type u_1} [Fintype n] {K : Type u_2} [Semifield K]
  [LinearOrder K] [IsStrictOrderedRing K] {A : Matrix n n K} {v y : n → K} {r t : K}
  (hA : ∀ (i j : n), 0 ≤ A i j) (hv : ∀ (i : n), 0 < v i) (hAv : A.mulVec v ≤ r • v) (hy : 0 ≤ y)
  (hy0 : y ≠ 0) (h : t • y ≤ A.mulVec y) : t ≤ r
Lean

Formalized in Tau Ceti as Matrix.le_of_smul_le_mulVec.

Other forms

Collatz–Wielandt bound for nonnegative matrices. Formalized in Tau Ceti as Matrix.ofReal_le_spectralRadius_of_smul_le_mulVec.

Matrix.ofReal_le_spectralRadius_of_smul_le_mulVec.{u_1} {n : Type u_1} [Fintype n]
  {A : Matrix n n ℝ} (hA : ∀ (i j : n), 0 ≤ A i j) {y : n → ℝ} {t : ℝ} (hy : 0 ≤ y) (hy0 : y ≠ 0)
  (h : t • y ≤ A.mulVec y) : ENNReal.ofReal t ≤ spectralRadius ℂ (A.map Complex.ofReal)
Sources
Uses 1 · Used by 1

TheoremGerstenhaber's theorem#

Over a field with continuous ring operations and closed points in which 0 is not isolated, such as ℂ, a matrix Y lies in the closure of the conjugacy class of a nilpotent matrix X exactly when rank (Y ^ k) ≤ rank (X ^ k) for every k.

Matrix.mem_closure_orbit_iff_forall_rank_pow_le.{u_1, u_2} {n : Type u_1} [Fintype n]
  [DecidableEq n] {K : Type u_2} [Field K] [TopologicalSpace K] [IsTopologicalRing K] [T1Space K]
  [(nhdsWithin 0 {0}ᶜ).NeBot] {X Y : Matrix n n K} (hX : IsNilpotent X) :
  Y ∈ closure (MulAction.orbit (ConjAct (GL n K)) X) ↔ ∀ (k : ℕ), (Y ^ k).rank ≤ (X ^ k).rank
Lean

Formalized in Tau Ceti as Matrix.mem_closure_orbit_iff_forall_rank_pow_le.

Other forms

Gerstenhaber's theorem, Zariski form. Formalized in Tau Ceti as Matrix.mem_zeroLocus_vanishingIdeal_orbit_iff_forall_rank_pow_le.

Matrix.mem_zeroLocus_vanishingIdeal_orbit_iff_forall_rank_pow_le.{u_1, u_2, u_3} {n : Type u_1}
  [Fintype n] [DecidableEq n] {K : Type u_2} [Field K] {k : Type u_3} [Field k] [Algebra k K]
  [Infinite K] {X Y : Matrix n n K} (hX : IsNilpotent X) :
  Function.uncurry Y ∈
      MvPolynomial.zeroLocus K
        (MvPolynomial.vanishingIdeal k (Function.uncurry '' MulAction.orbit (ConjAct (GL n K)) X)) ↔
    ∀ (j : ℕ), (Y ^ j).rank ≤ (X ^ j).rank
Sources

TheoremHadamard's bound, ℓ¹ row form#

The absolute value of a determinant is at most the product of the ℓ¹ norms of the rows.

Matrix.abv_det_le_prod_sum_abv.{u_1, u_2, u_3} {R : Type u_1} {S : Type u_2} [CommRing R]
  [Nontrivial R] [CommRing S] [LinearOrder S] [IsStrictOrderedRing S] {n : Type u_3} [Fintype n]
  [DecidableEq n] (A : Matrix n n R) (abv : AbsoluteValue R S) : abv A.det ≤ ∏ i, ∑ j, abv (A i j)
Lean

Formalized in Tau Ceti as Matrix.abv_det_le_prod_sum_abv.

Other forms

Hadamard's bound, ℓ¹ column form. Formalized in Tau Ceti as Matrix.abv_det_le_prod_sum_abv'.

Matrix.abv_det_le_prod_sum_abv'.{u_1, u_2, u_3} {R : Type u_1} {S : Type u_2} [CommRing R]
  [Nontrivial R] [CommRing S] [LinearOrder S] [IsStrictOrderedRing S] {n : Type u_3} [Fintype n]
  [DecidableEq n] (A : Matrix n n R) (abv : AbsoluteValue R S) : abv A.det ≤ ∏ j, ∑ i, abv (A i j)

Hadamard's bound, ℓ¹ column form, for |·|. Formalized in Tau Ceti as Matrix.abs_det_le_prod_sum_abs'.

Matrix.abs_det_le_prod_sum_abs'.{u_2, u_3} {S : Type u_2} [CommRing S] [LinearOrder S]
  [IsStrictOrderedRing S] {n : Type u_3} [Fintype n] [DecidableEq n] (A : Matrix n n S) :
  |A.det| ≤ ∏ j, ∑ i, |A i j|

Hadamard's bound, ℓ¹ row form, for |·|. Formalized in Tau Ceti as Matrix.abs_det_le_prod_sum_abs.

Matrix.abs_det_le_prod_sum_abs.{u_2, u_3} {S : Type u_2} [CommRing S] [LinearOrder S]
  [IsStrictOrderedRing S] {n : Type u_3} [Fintype n] [DecidableEq n] (A : Matrix n n S) :
  |A.det| ≤ ∏ i, ∑ j, |A i j|
Sources
Used by 1

TheoremIwasawa's theorem for the projective symplectic group#

In positive rank, the quotient PSp_{2m}(K) of the symplectic group by its centre is simple as soon as Sp_{2m}(K) is perfect.

TauCeti.GLSymplecticFin.isSimpleGroup_quotient_center.{u} {K : Type u} [Field K] {m : ℕ} [NeZero m]
  (h : commutator ↥(TauCeti.GLSymplecticFin m K) = ⊤) :
  IsSimpleGroup (↥(TauCeti.GLSymplecticFin m K) ⧸ Subgroup.center ↥(TauCeti.GLSymplecticFin m K))
Uses 1

TheoremJacobi's complementary minor theorem#

For #I = #J = k, the product of the determinant of A and the complementary minor of the adjugate, with rows Jᶜ and columns Iᶜ, is (-1) ^ (∑ I + ∑ J) times (det A) ^ (n - k) times the minor A[I, J].

Matrix.det_mul_det_submatrix_adjugate.{u_1} {R : Type u_1} [CommRing R] {n k : ℕ}
  (A : Matrix (Fin n) (Fin n) R) {I J : Finset (Fin n)} (hI : I.card = k) (hJ : J.card = k) :
  A.det * (A.adjugate.submatrix ⇑(Jᶜ.orderEmbOfFin ⋯) ⇑(Iᶜ.orderEmbOfFin ⋯)).det =
    (-1) ^ (∑ i ∈ I, ↑i + ∑ j ∈ J, ↑j) * A.det ^ (n - k) *
      (A.submatrix ⇑(I.orderEmbOfFin hI) ⇑(J.orderEmbOfFin hJ)).det

TheoremJacobi's complementary-minor identity#

Jacobi's complementary-minor identity for an arbitrary index type n, split into two groups of indices by an equivalence e : m ⊕ p ≃ n.

Matrix.det_submatrix_comp_inr_eq_sign_mul_det_mul_det_submatrix_comp_inl.{u_1, u_2, u_3, u_4}
  {m : Type u_1} {p : Type u_2} {n : Type u_3} {R : Type u_4} [CommRing R] [Fintype m] [Fintype p]
  [DecidableEq m] [DecidableEq p] [Fintype n] [DecidableEq n] (A B : Matrix n n R) (hAB : A * B = 1)
  (e : m ⊕ p ≃ n) (σ τ : Equiv.Perm n) :
  (A.submatrix (⇑τ ∘ ⇑e ∘ Sum.inr) (⇑σ ∘ ⇑e ∘ Sum.inr)).det =
    ↑↑(Equiv.Perm.sign σ) * ↑↑(Equiv.Perm.sign τ) * A.det *
      (B.submatrix (⇑σ ∘ ⇑e ∘ Sum.inl) (⇑τ ∘ ⇑e ∘ Sum.inl)).det
Lean

Formalized in Tau Ceti as Matrix.det_submatrix_comp_inr_eq_sign_mul_det_mul_det_submatrix_comp_inl.

Other forms

Jacobi's complementary-minor identity. Formalized in Tau Ceti as Matrix.det_submatrix_inr_eq_sign_mul_det_mul_det_submatrix_inl.

Matrix.det_submatrix_inr_eq_sign_mul_det_mul_det_submatrix_inl.{u_1, u_2, u_4} {m : Type u_1}
  {p : Type u_2} {R : Type u_4} [CommRing R] [Fintype m] [Fintype p] [DecidableEq m] [DecidableEq p]
  (A B : Matrix (m ⊕ p) (m ⊕ p) R) (hAB : A * B = 1) (σ τ : Equiv.Perm (m ⊕ p)) :
  (A.submatrix (⇑τ ∘ Sum.inr) (⇑σ ∘ Sum.inr)).det =
    ↑↑(Equiv.Perm.sign σ) * ↑↑(Equiv.Perm.sign τ) * A.det *
      (B.submatrix (⇑σ ∘ Sum.inl) (⇑τ ∘ Sum.inl)).det
Sources
Used by 1

TheoremJacobi's formula, by rows#

Replacing the i-th row of A by the i-th row of B and summing the determinants over i gives trace (adj A * B), the derivative of det at A in the direction B.

Matrix.sum_det_updateRow_eq_trace_adjugate_mul.{u_1, u_2} {K : Type u_1} [CommRing K] {n : Type u_2}
  [Fintype n] [DecidableEq n] (A B : Matrix n n K) :
  ∑ i, (A.updateRow i (B i)).det = (A.adjugate * B).trace
Lean

Formalized in Tau Ceti as Matrix.sum_det_updateRow_eq_trace_adjugate_mul.

Other forms

Jacobi's formula, by columns. Formalized in Tau Ceti as Matrix.sum_det_updateCol_eq_trace_adjugate_mul.

Matrix.sum_det_updateCol_eq_trace_adjugate_mul.{u_1, u_2} {K : Type u_1} [CommRing K] {n : Type u_2}
  [Fintype n] [DecidableEq n] (A B : Matrix n n K) :
  ∑ j, (A.updateCol j fun i => B i j).det = (A.adjugate * B).trace
Sources
Used by 1

TheoremPerron–Frobenius theorem for nonnegative matrices#

an entrywise nonnegative real square matrix has its spectral radius r, viewed as a complex matrix, as an eigenvalue, with an eigenvector whose entries are nonnegative and not all zero.

Unlike the strictly positive and irreducible cases (Matrix.exists_mulVec_eq_smul_of_pos and Matrix.IsIrreducible.exists_mulVec_eq_smul), the eigenvector may have zero entries and need not be unique up to scalars, and r may be zero.

Matrix.exists_mulVec_eq_smul_of_nonneg.{u_1} {n : Type u_1} [Fintype n] {A : Matrix n n ℝ}
  [Nonempty n] (hA : ∀ (i j : n), 0 ≤ A i j) :
  ∃ r,
    0 ≤ r ∧
      spectralRadius ℂ (A.map Complex.ofReal) = ENNReal.ofReal r ∧
        ∃ v, 0 ≤ v ∧ v ≠ 0 ∧ A.mulVec v = r • v
Informally uses
Lean

Formalized in Tau Ceti as Matrix.exists_mulVec_eq_smul_of_nonneg.

Other forms

Perron–Frobenius. Formalized in Tau Ceti as Matrix.IsIrreducible.rootMultiplicity_charpoly_eq_one.

Matrix.IsIrreducible.rootMultiplicity_charpoly_eq_one.{u_1} {n : Type u_1} [Fintype n]
  {A : Matrix n n ℝ} {v : n → ℝ} {r : ℝ} [DecidableEq n] [Nonempty n] (hA : A.IsIrreducible)
  (hv : ∀ (i : n), 0 < v i) (hAv : A.mulVec v = r • v) :
  Polynomial.rootMultiplicity r A.charpoly = 1

Perron–Frobenius. Formalized in Tau Ceti as Matrix.IsPrimitive.eq_of_norm_eq_of_mulVec_eq_smul.

Matrix.IsPrimitive.eq_of_norm_eq_of_mulVec_eq_smul.{u_1} {n : Type u_1} [Fintype n] [DecidableEq n]
  {A : Matrix n n ℝ} {v : n → ℝ} {r : ℝ} {μ : ℂ} (hA : A.IsPrimitive) (hv : ∀ (i : n), 0 < v i)
  (hAv : A.mulVec v = r • v) {z : n → ℂ} (hz : z ≠ 0)
  (hAz : (A.map Complex.ofReal).mulVec z = μ • z) (hμ : ‖μ‖ = r) : μ = ↑r

Perron–Frobenius. Formalized in Tau Ceti as Matrix.IsPrimitive.norm_lt_of_mem_spectrum.

Matrix.IsPrimitive.norm_lt_of_mem_spectrum.{u_1} {n : Type u_1} [Fintype n] [DecidableEq n]
  {A : Matrix n n ℝ} {v : n → ℝ} {r : ℝ} {μ : ℂ} (hA : A.IsPrimitive) (hv : ∀ (i : n), 0 < v i)
  (hAv : A.mulVec v = r • v) (hμ : μ ∈ spectrum ℂ (A.map Complex.ofReal)) (hμr : μ ≠ ↑r) : ‖μ‖ < r

Perron–Frobenius. Formalized in Tau Ceti as Matrix.IsPrimitive.norm_lt_of_mulVec_eq_smul.

Matrix.IsPrimitive.norm_lt_of_mulVec_eq_smul.{u_1} {n : Type u_1} [Fintype n] [DecidableEq n]
  {A : Matrix n n ℝ} {v : n → ℝ} {r : ℝ} {μ : ℂ} (hA : A.IsPrimitive) (hv : ∀ (i : n), 0 < v i)
  (hAv : A.mulVec v = r • v) {z : n → ℂ} (hz : z ≠ 0)
  (hAz : (A.map Complex.ofReal).mulVec z = μ • z) (hμ : μ ≠ ↑r) : ‖μ‖ < r

Perron–Frobenius. Formalized in Tau Ceti as Matrix.eq_of_norm_eq_of_mulVec_eq_smul.

Matrix.eq_of_norm_eq_of_mulVec_eq_smul.{u_1} {n : Type u_1} [Fintype n] {A : Matrix n n ℝ}
  {v : n → ℝ} {r : ℝ} (hA : ∀ (i j : n), 0 < A i j) (hv : ∀ (i : n), 0 < v i)
  (hAv : A.mulVec v = r • v) {μ : ℂ} {z : n → ℂ} (hz : z ≠ 0)
  (hAz : (A.map Complex.ofReal).mulVec z = μ • z) (hμ : ‖μ‖ = r) : μ = ↑r

Perron–Frobenius. Formalized in Tau Ceti as Matrix.spectralRadius_eq_of_mulVec_eq_smul.

Matrix.spectralRadius_eq_of_mulVec_eq_smul.{u_1} {n : Type u_1} [Fintype n] {A : Matrix n n ℝ}
  {v : n → ℝ} {r : ℝ} [Nonempty n] (hA : ∀ (i j : n), 0 ≤ A i j) (hv : ∀ (i : n), 0 < v i)
  (hAv : A.mulVec v = r • v) : spectralRadius ℂ (A.map Complex.ofReal) = ENNReal.ofReal r

Perron–Frobenius theorem for irreducible matrices, existence. Formalized in Tau Ceti as Matrix.IsIrreducible.exists_mulVec_eq_smul.

Matrix.IsIrreducible.exists_mulVec_eq_smul.{u_1} {n : Type u_1} [Fintype n] {A : Matrix n n ℝ}
  [Nonempty n] (hA : A.IsIrreducible) : ∃ r, 0 < r ∧ ∃ v, (∀ (i : n), 0 < v i) ∧ A.mulVec v = r • v

Perron–Frobenius theorem for positive matrices, existence. Formalized in Tau Ceti as Matrix.exists_mulVec_eq_smul_of_pos.

Matrix.exists_mulVec_eq_smul_of_pos.{u_1} {n : Type u_1} [Fintype n] {A : Matrix n n ℝ} [Nonempty n]
  (hA : ∀ (i j : n), 0 < A i j) : ∃ r, 0 < r ∧ ∃ v, (∀ (i : n), 0 < v i) ∧ A.mulVec v = r • v
Sources
Used by 3

TheoremSherman–Morrison formula over a commutative ring#

The rank-one correction is the outer product of the updated column and row, divided by the scalar denominator.

Matrix.inv_add_vecMulVec.{u_1, u_2} {n : Type u_1} {R : Type u_2} [Fintype n] [DecidableEq n]
  [CommRing R] (A : Matrix n n R) (hA : IsUnit A) (u v : n → R)
  (hd : IsUnit (1 + v ⬝ᵥ A⁻¹.mulVec u)) :
  (A + Matrix.vecMulVec u v)⁻¹ =
    A⁻¹ -
      Ring.inverse (1 + v ⬝ᵥ A⁻¹.mulVec u) • Matrix.vecMulVec (A⁻¹.mulVec u) (Matrix.vecMul v A⁻¹)

TheoremSkolem–Noether for matrix algebras over a local semiring#

every algebra automorphism of a matrix algebra over a commutative local semiring, in particular over a field, is inner.

Matrix.GeneralLinearGroup.innerAut_surjective.{u_1, u_2} {n : Type u_1} [Fintype n] [DecidableEq n]
  (K : Type u_2) [CommSemiring K] [IsLocalRing K] :
  Function.Surjective ⇑Matrix.GeneralLinearGroup.innerAut
Used by 2

TheoremSylvester's rank inequality#

for an m × n matrix A and an n × o matrix B over a field, rank A + rank B ≤ rank (A * B) + n. Equivalently, multiplying by A lowers the rank of B by at most the nullity of A.

Matrix.rank_add_rank_le_rank_mul_add_card.{u_1, u_2, u_3, u_4} {K : Type u_1} [Field K]
  {m : Type u_2} {n : Type u_3} [Fintype n] {o : Type u_4} [Fintype o] (A : Matrix m n K)
  (B : Matrix n o K) : A.rank + B.rank ≤ (A * B).rank + Fintype.card n
Used by 1

TheoremUltrametric Hadamard bound, row form#

For a nonarchimedean absolute value abv, if row i of A is bounded entrywise in abv by b i, then abv A.det ≤ ∏ i, b i.

Matrix.abv_det_le_prod_of_le.{u_1, u_2, u_3} {R : Type u_1} {S : Type u_2} [CommRing R]
  [Nontrivial R] [CommRing S] [LinearOrder S] [IsStrictOrderedRing S] {n : Type u_3} [Fintype n]
  [DecidableEq n] (A : Matrix n n R) {abv : AbsoluteValue R S} (habv : IsNonarchimedean ⇑abv)
  {b : n → S} (hA : ∀ (i j : n), abv (A i j) ≤ b i) : abv A.det ≤ ∏ i, b i
Lean

Formalized in Tau Ceti as Matrix.abv_det_le_prod_of_le.

Other forms

Ultrametric Hadamard bound, column form. Formalized in Tau Ceti as Matrix.abv_det_le_prod_of_le'.

Matrix.abv_det_le_prod_of_le'.{u_1, u_2, u_3} {R : Type u_1} {S : Type u_2} [CommRing R]
  [Nontrivial R] [CommRing S] [LinearOrder S] [IsStrictOrderedRing S] {n : Type u_3} [Fintype n]
  [DecidableEq n] (A : Matrix n n R) {abv : AbsoluteValue R S} (habv : IsNonarchimedean ⇑abv)
  {b : n → S} (hA : ∀ (i j : n), abv (A i j) ≤ b j) : abv A.det ≤ ∏ j, b j
Sources

TheoremWhitehead's lemma#

For an invertible matrix u, the block diagonal matrix u ⊕ u⁻¹ is elementary: it is the product of six block unipotent matrices, u ⊕ u⁻¹ = U(u) L(-u⁻¹) U(u) U(-1) L(1) U(-1).

TauCeti.fromBlocksGL_inv_mem_elementarySubgroup.{u_1, u_2} {A : Type u_1} [Ring A] {m : Type u_2}
  [DecidableEq m] [Fintype m] (u : GL m A) :
  TauCeti.fromBlocksGL (u, u⁻¹) ∈ TauCeti.elementarySubgroup (m ⊕ m) A

The dependency explorer needs JavaScript and its graph data.

Download the complete graph data.