Theorems
Rook polynomials
Weighted rook polynomials are weighted matching polynomials of complete bipartite graphs. For every nonnegative finite matrix they are real-rooted, with nonpositive roots; Nijenhuis’s signed normalization has nonnegative roots.
References
A. Nijenhuis, “On permanents and the zeros of rook polynomials,” Journal of Combinatorial Theory, Series A 21 (1976), 240–244. See also the rook-polynomial overview on symmetricfunctions.com.
≔ Definitions
Rook placement
def IsRookPlacement (P : Finset (Row × Column)) : Prop :=
∀ ⦃x⦄, x ∈ P → ∀ ⦃y⦄, y ∈ P → x ≠ y →
x.1 ≠ y.1 ∧ x.2 ≠ y.2
Weighted rook polynomial
def weightedRookPolynomial [Fintype Row] [Fintype Column]
[DecidableEq Row] [DecidableEq Column]
(A : Row → Column → ℝ) : ℝ[X] := by
classical
exact ∑ P ∈ (Finset.univ.filter fun P : Finset (Row × Column) ↦
IsRookPlacement P),
(∏ x ∈ P, C (A x.1 x.2)) * X ^ P.card
Nijenhuis's signed rook polynomial
def nijenhuisRookPolynomial [Fintype Row] [Fintype Column]
[DecidableEq Row] [DecidableEq Column]
(A : Row → Column → ℝ) : ℝ[X] :=
(weightedRookPolynomial A).comp (-X)
⊢ Theorems
Rook polynomials are bipartite matching polynomials
theorem bipartiteMatchingIdentity {Row : Type u} {Column : Type v}
[Fintype Row] [Fintype Column] [DecidableEq Row] [DecidableEq Column]
(A : Row → Column → ℝ) :
Rook.weightedRookPolynomial A =
Graph.weightedMatchingPolynomialByEdges
(_root_.completeBipartiteGraph Row Column)
(Rook.matrixEdgeWeight A)
Weighted rook polynomials are real-rooted
theorem weightedRealRooted {Row : Type u} {Column : Type v}
[Fintype Row] [Fintype Column] [DecidableEq Row] [DecidableEq Column]
(A : Row → Column → ℝ) (hA : ∀ r c, 0 ≤ A r c) :
(Rook.weightedRookPolynomial A).Splits
The signed rook polynomial has nonnegative roots
theorem signedRoots_nonnegative {Row : Type u} {Column : Type v}
[Fintype Row] [Fintype Column] [DecidableEq Row] [DecidableEq Column]
(A : Row → Column → ℝ) (hA : ∀ r c, 0 ≤ A r c) :
∀ z ∈ (Rook.nijenhuisRookPolynomial A).roots, 0 ≤ z
Rook polynomials of boards are real-rooted
theorem ordinaryRealRooted {Row : Type u} {Column : Type v}
[Fintype Row] [Fintype Column] [DecidableEq Row] [DecidableEq Column]
(B : Finset (Row × Column)) :
(Rook.rookPolynomial B).Splits
Lean source RealRooted/Challenges/Nijenhuis.lean at revision 5827550b.