Consecutive Ones Implies Total Unimodularity
Lax496464.ConsecutiveOnes · concepts/Lax496464/ConsecutiveOnes.lean · lax-496464
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
A matrix of zeros and ones has the consecutive ones property when the ones in each row occupy a consecutive block of columns. Such a matrix is totally unimodular: every square submatrix has determinant , or .
This is the theorem of Fulkerson and Gross, and it is what makes the integer program of Section 6.2 solvable as a linear program.
Concept map
In the paper
- page 6 of this submission's paper
Lean source view on GitHub
| 1 | import Mathlib.LinearAlgebra.Matrix.Determinant.TotallyUnimodular |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Consecutive Ones Implies Total Unimodularity |
| 6 | type: theorem |
| 7 | --- |
| 8 | A matrix of zeros and ones has the *consecutive ones property* when the ones in each row |
| 9 | occupy a consecutive block of columns. Such a matrix is *totally unimodular*: every |
| 10 | square submatrix has determinant , or . |
| 11 | |
| 12 | This is the theorem of Fulkerson and Gross, and it is what makes the integer program of |
| 13 | Section 6.2 solvable as a linear program. |
| 14 | |
| 15 | # Formalization Notes |
| 16 | |
| 17 | The property is stated as a closure condition — if a row has a one at two columns then it |
| 18 | has a one at every column between them — rather than through an ordering of the columns |
| 19 | supplied from outside. The two agree once the columns are ordered, and the closure form |
| 20 | is what a matrix built from intervals satisfies by construction and what a proof uses. |
| 21 | |
| 22 | The columns are only required to carry an order, not to be finite or linearly ordered: |
| 23 | nothing below needs more. Total unimodularity is mathlib's, so the conclusion is the |
| 24 | standard one and is available to whatever consumes it. |
| 25 | |
| 26 | The paper cites this result. It is proved here rather than assumed, since neither it nor |
| 27 | anything equivalent is in the background library, and a hardness or tractability claim |
| 28 | resting on it should not rest on an axiom that could as well be false. |
| 29 | -/ |
| 30 | |
| 31 | namespace Lax496464.ConsecutiveOnes |
| 32 | |
| 33 | /-- The ones of each row occupy a consecutive block of columns. -/ |
| 34 | def HasConsecutiveOnes {m n : Type*} [LE n] (A : Matrix m n ℤ) : Prop := |
| 35 | (∀ r c, A r c = 0 ∨ A r c = 1) ∧ |
| 36 | ∀ r c₁ c c₂, c₁ ≤ c → c ≤ c₂ → A r c₁ = 1 → A r c₂ = 1 → A r c = 1 |
| 37 | |
| 38 | /-- **Fulkerson–Gross.** A matrix with the consecutive ones property is totally |
| 39 | unimodular. -/ |
| 40 | axiom isTotallyUnimodular {m n : Type*} [LinearOrder n] {A : Matrix m n ℤ} |
| 41 | (h : HasConsecutiveOnes A) : A.IsTotallyUnimodular |
| 42 | |
| 43 | end Lax496464.ConsecutiveOnes |
| 44 |
Formalization Notes
The property is stated as a closure condition — if a row has a one at two columns then it has a one at every column between them — rather than through an ordering of the columns supplied from outside. The two agree once the columns are ordered, and the closure form is what a matrix built from intervals satisfies by construction and what a proof uses.
The columns are only required to carry an order, not to be finite or linearly ordered: nothing below needs more. Total unimodularity is mathlib's, so the conclusion is the standard one and is available to whatever consumes it.
The paper cites this result. It is proved here rather than assumed, since neither it nor anything equivalent is in the background library, and a hardness or tractability claim resting on it should not rest on an axiom that could as well be false.
Builds on
none
Used by
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments