Invertibility and Schur complements for 2×2 block matrices over general rings #
This module establishes invertibility criteria and factorizations for 2×2 block matrices over
arbitrary (possibly noncommutative) rings R.
Mathlib's Mathlib.LinearAlgebra.Matrix.SchurComplement proves analogous results
(fromBlocks_eq_of_invertible₁₁, isUnit_fromBlocks_iff_of_invertible₁₁,
isUnit_fromBlocks_zero₂₁) for commutative rings ([CommRing α]). The lemmas here generalize those
results to the $D = 0$ cases over arbitrary rings [Ring R], which is required when the matrix
entries themselves are matrices (e.g. in rational circuit evaluations).
Main results #
Matrix.isUnit_fromBlocks_one_zero₂₁: an upper unitriangular block matrix is invertible.Matrix.isUnit_fromBlocks_one_zero₁₂: a lower unitriangular block matrix is invertible.Matrix.isUnit_fromBlocks_diagonal_iff: a block diagonal matrix is invertible iff both diagonal blocks are.Matrix.fromBlocks_zero₂₂_schur_factor: Schur factorization of a block matrix with a zero corner and an invertible corner.Matrix.isUnit_fromBlocks_zero₂₂_iff: invertibility of a block matrix with a zero corner via its Schur complement.Matrix.inv_smul_mul_smul,Matrix.inv_smul_mul_smul_of_ne_zero: rescaling two matrices by the same invertible scalar cancels in(c • A)⁻¹ * (c • B) = A⁻¹ * B.
References #
An upper unitriangular block matrix is invertible.
A lower unitriangular block matrix is invertible.
A block diagonal matrix is invertible exactly when both diagonal blocks are.
The Schur factorization of a block matrix with a zero corner and an invertible corner.
A block matrix with a zero corner and an invertible corner is invertible exactly when its Schur complement is.
Rescaling two matrices by the same invertible scalar cancels in (c • A)⁻¹ * (c • B) = A⁻¹ * B
when A.det is a unit.
Over a field, rescaling two matrices by the same nonzero scalar cancels in
(c • A)⁻¹ * (c • B) = A⁻¹ * B when A.det ≠ 0.