Mathlib-side Grassmann-Plucker identity for the executable Hex.Matrix minors.
This module assembles the three-term Plucker relation among the ordered
nDet minors of a tall matrix B. Starting from the two-row replacement
adjugate identity, it transports the double setRow matrix to the signed
nDet B p2 p3 minor via the disjoint-cycle permutation
cycleAhead * cycleBehind, proving det_double_setRow_eq_pow_mul_nDet and the
signed ordered_four_signed_Plucker_p1_side. These combine into the raw
kernel det_plucker_three_term_nDet_of_ordered_four and, after a case split on
the position of a basis-vector row q, the arbitrary-row form
det_plucker_three_term_basisVec_of_ne (with its diagonal q = p_t cases).
The ordered base minor in the four-row Plucker setup is exactly the
corresponding nDet. This theorem gives downstream rewrites a named surface
instead of unfolding Hex.Matrix.nDet locally.
Ordered two-row replacement identity after rewriting each cofactor-row pairing as the determinant of the corresponding row replacement.
This is the determinant-only form needed before the remaining signed
row-permutation transports to nDet minors.
Double-row replacement transport to nDet B p2 p3 #
The double setRow matrix setRow (setRow M r2 B[p1]) r3 B[q] (with
M = nMatrix B p1 q, r2 = ⟨p2.val - 1, _⟩, r3 = ⟨p3.val - 1, _⟩)
shares the same row content as nMatrix B p2 p3, just permuted: B[p1] is
moved up from position p1.val to position p2.val - 1, and B[q] is
moved down from position q.val - 2 to position p3.val - 1. The
resulting permutation is the product of two disjoint cycles
cycleAhead p1.val (p2.val - p1.val - 1) and
cycleBehind (p3.val - 1) (q.val - p3.val - 1), with combined sign
(-1) ^ (p2.val - p1.val - 1 + (q.val - p3.val - 1)).
Determinant-level transport for the ordered four-row double setRow:
for p1 < p2 < p3 < q, replacing rows r2 := ⟨p2.val - 1, _⟩ and
r3 := ⟨p3.val - 1, _⟩ of nMatrix B p1 q by B[p1] and B[q] respectively
produces the signed nDet B p2 p3 minor with combined sign
(-1) ^ (p2.val - p1.val - 1 + (q.val - p3.val - 1)).
Rewrite-ready signed Plucker form: the LHS double-row setRow determinant
is identified with the signed nDet B p2 p3 minor, and the two p1-side
cofactor-row pairings on the RHS are identified with their signed nDet B p_t q
minors. The remaining q-side cofactor-row pairings are left in
cofactorRowPairing form so the assembly in #6012 can finish them after
the q-row signed transports land.
Raw ordered four-row nDet Plucker kernel. For p1 < p2 < p3 < q, the
canonical three-term Grassmann-Plucker identity holds among the six
ordered nDet minors of B. The proof substitutes the q-side cofactor-row
pairings in ordered_four_signed_Plucker_p1_side to obtain a
fully-signed nDet identity, then cancels the common
(-1) ^ (p2.val - p1.val - 1 + (q.val - p3.val - 1)) factor by squaring it.
Arbitrary-row basis-vector Plucker coefficient identity for three ordered
rows p1 < p2 < p3 and a fourth row q distinct from them. The proof
transports each order case to the ordered four-row nDet kernel and rewrites
the three mDet coefficients by basis-vector evaluation.
Universal three-term Plucker identity for one arbitrary row and three
ordered basis rows, assembled from the ordered four-row nDet kernel and the
three equal-row basis-vector cases.
Reindex the (k+2) × (k+2) bordered minor so Desnanot-Jacobi deletes the
Bareiss pivot row/column first and the trailing row/column last.
The order is [k, 0, 1, ..., k-1, k+1] in the original bordered-minor
coordinates. Applying the same permutation to rows and columns preserves the
determinant and makes the Desnanot interior the previous leading pivot.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reindexing a bordered minor by bareissDesnanotIndex on both axes does not
change its determinant.
Desnanot-Jacobi specialized to a Bareiss bordered minor after the row/column
reindexing used by bareissDesnanotIndex.
This is the Mathlib determinant identity that later proofs rewrite through
matrixEquiv_borderedMinor/det_borderedMinor_eq_submatrix_det to obtain the
hdesnanot hypothesis for bareissExactDiv_borderedMinor_of_mul_eq.
Exact-division equation for one Bareiss bordered-minor update.
The remaining Mathlib-side recurrence proof can supply hdesnanot from the
Desnanot-Jacobi identity; this lemma packages the resulting product identity
as the hexact premise expected by Hex.Matrix.stepMatrix_borderedMinor_update.
Desnanot-Jacobi specialised to a Bareiss bordered minor: the Mathlib
determinant identity from desnanot_jacobi_borderedMinor_reindex translated
back into Hex borderedMinor/principalSubmatrix determinants. This produces the
hdesnanot premise expected by bareissExactDiv_borderedMinor_of_mul_eq with
prevPivot instantiated as det (principalSubmatrix source k _).