Skip to content

Add compound matrices: multiplicativity and entrywise nonnegativity - #408

Merged
PerAlexandersson merged 1 commit into
mainfrom
proof/compound-matrix
Aug 21, 2026
Merged

Add compound matrices: multiplicativity and entrywise nonnegativity#408
PerAlexandersson merged 1 commit into
mainfrom
proof/compound-matrix

Conversation

@PerAlexandersson

Copy link
Copy Markdown
Owner

Items 1 and 2 of #405 (does not close it — item 3, the eigenvalue-product
theorem, is the remaining hard half).

Adds RealRooted/Mathlib/LinearAlgebra/Matrix/Compound.lean, mirroring the
Mathlib path for upstreaming:

  • compound q A: the q-th compound matrix, indexed by
    Set.powersetCard (Fin n) q, entries the q × q minors via the strictly
    monotone enumeration powersetEnum;
  • compound_mul: multiplicativity compound q (A * B) = compound q A * compound q B,
    a re-indexing of Matrix.det_submatrix_mul_eq_sum_powersetCard
    (Determinant/CauchyBinet.lean);
  • compound_nonneg: total nonnegativity gives entrywise nonnegative compounds;
  • compound_one_apply: the q = 1 compound recovers the matrix.

Sorry-free; builds clean on top of #403.

🤖 Generated with Claude Code

Step 3 (tractable half) of issue #394's decomposition; issue #405.
Defines Matrix.compound q A, the matrix of all q x q minors indexed by
increasing q-element selections, and proves compound_mul, that
compound q (L * A) = compound q L * compound q A. That is exactly the existing
Cauchy-Binet expansion det_submatrix_mul_eq_sum_powersetCard re-indexed, so the
proof is three lines.
Also proves compound_nonneg, that a totally nonnegative matrix has an entrywise
nonnegative compound matrix, and compound_one_apply identifying the first
compound matrix with A itself.
Placed in the Mathlib mirror tree so it is upstream-shaped. Not proved here:
that the eigenvalues of compound q A are the q-fold products of the eigenvalues
of A, which is the hard half of #405 and the remaining spectral input for
Gantmacher-Krein.
No sorry and no axiom.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@PerAlexandersson