Cauchy–Binet Formula
Statement
Let be an matrix and an matrix over a commutative ring, with . Then
where denotes the submatrix of formed by the columns indexed by , and is the submatrix of formed by the rows indexed by .
When , the only term has and we recover the Determinant MultiplicativityDeterminant MultiplicativityThe determinant of a product equals the product of determinantsRead more → formula .
Visualization
Take , :
There are index subsets: (1-indexed).
| product | |||||
|---|---|---|---|---|---|
Sum: .
Direct computation: , . Confirmed.
Proof Sketch
- Expand via multilinearity. Write . Expand using multilinearity of the determinant in each row: this gives a sum over functions of products times an determinant of columns of indexed by .
- Non-injective terms vanish. If is not injective, two rows of the -submatrix are identical (up to sign), so its determinant is zero.
- Injective functions = subsets. For injective , grouping by the image set and summing over permutations of recovers from the Leibniz formula. The remaining factor is .
- Square case. When , the only injective with image are permutations — summing over all of them gives .
Connections
Cauchy–Binet specializes to Determinant MultiplicativityDeterminant MultiplicativityThe determinant of a product equals the product of determinantsRead more → when and implies Hadamard's InequalityHadamard's InequalityThe absolute value of a determinant is at most the product of the Euclidean norms of its columns.Read more → (via bounding each minor term). It connects to Rank–Nullity TheoremRank–Nullity TheoremThe dimensions of image and kernel of a linear map sum to the domain dimensionRead more → through the fact that , which follows from counting nonzero terms.
Lean4 Proof
-- Cauchy-Binet for the square case is exactly det_mul.
-- Mathlib: Matrix.det_mul in LinearAlgebra.Matrix.Determinant.Basic
-- For the rectangular case we verify a small numerical instance using decide.
open Matrix in
theorem cauchy_binet_square (n : Type*) [Fintype n] [DecidableEq n]
(A B : Matrix n n ℚ) :
det (A * B) = det A * det B :=
det_mul A B
-- Numerical check: the 2x3 times 3x2 example from the Visualization (over ℤ).
theorem cauchy_binet_check :
let A : Matrix (Fin 2) (Fin 3) ℤ := !![1, 2, 3; 4, 5, 6]
let B : Matrix (Fin 3) (Fin 2) ℤ := !![7, 8; 9, 10; 11, 12]
(A * B).det = 36 := by decideReferenced by
- Hadamard's InequalityLinear Algebra