Every Natural Rook-Placement Count Occurs
Abstract
An alternating five-column family realizes every positive count, and a three-by-three grid realizes zero.
Theorem 1.1 (Horizontal row intervals).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.white_same_across (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
Two white cells in the same row of the family lie in the same across word.
Theorem 1.2 (Side-word confinement).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.side_word_stays_in_block (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
A down word meeting the side column within a block remains between that block’s first and last rows.
Theorem 1.3 (Singleton outer words).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.tip_word_is_singleton (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
A down word through an outer tip contains only that tip.
Theorem 1.4 (Odd-row white columns).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.odd_row_columns (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
Each occupied odd row consists of the central, side, and outer columns of its block.
Theorem 1.5 (Even-row white columns).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.even_row_columns (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
Each occupied even row meets the central column and the side columns of the blocks incident to it.
Theorem 1.6 (Spine, side runs, and tips).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.white_iff_pattern (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
The white cells are precisely the central spine, the three-cell side runs, and the outer tips.
Theorem 1.7 (Classification of down words).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.same_down_iff (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
Two white cells share a down word exactly when both are central, both lie in one side block, or they coincide.
Theorem 1.8 (At most one candidate rook per row).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.candidate_row_unique (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
Candidate cells with the same row index are equal.
Theorem 1.9 (Selected side endpoint).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.candidate_side_choice (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
A candidate cell in a side block is its top endpoint before the central index and its bottom endpoint afterward.
Theorem 1.10 (Candidate across-word coverage).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.candidate_row_exists (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
For k less than r, every occupied row contains a candidate rook.
Theorem 1.11 (Candidate down-word coverage).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.candidate_down_exists (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
For k less than r, every white cell shares its down word with a candidate rook.
Theorem 1.12 (Candidate completeness).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.candidate_is_placement (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
Every central index less than r gives a complete non-attacking rook placement.
Theorem 1.13 (Forced upper endpoints).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.placement_top_before_central (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
In any complete placement with a central rook in row two k, every earlier side block uses its upper endpoint.
Theorem 1.14 (Forced lower endpoints).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.placement_bottom_after_central (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
In any complete placement with a central rook in row two k, every side block from k onward uses its lower endpoint.
Theorem 1.15 (Exhaustion by central indices).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.placement_eq_candidate (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
For positive r, every complete placement equals the candidate for some k less than r.
Theorem 1.16 (Distinct central choices).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.candidate_injective (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
Equal candidates with indices less than r have equal indices.
Definition 1.17 (The zero-count grid).
Formalization. D5/S3/Combinatorics/CrosswordRookCounts.zeroWhite (✓ std3).
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
The white cells are two adjacent cells in the first row and two vertically adjacent cells in the first column.
Theorem 1.18 (No placement on the zero grid).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.zero_rook_count (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
The two singleton down words in the first row would force two rooks in one across word, so the count is zero.
Theorem 1.19 (Every natural number occurs).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/CrosswordRookCounts.result (✓ std3). ∎
Resolves. Problems/lewis-won-crossword-rook-counts (proved) by D5/S3/Combinatorics/CrosswordRookCounts.result.
Source. Repository-derived.
Acknowledgement. Joel Brewster Lewis, Robert Won (2026). Non-attacking rook placements on crossword grids. DOI: 10.48550/arXiv.2609.03081. URL: https://arxiv.org/abs/2609.03081v1.
Commentary.
The zero grid and the positive family together realize every natural rook-placement count on square grids.
References
- Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.candidate_down_exists - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.candidate_injective - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.candidate_is_placement - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.candidate_row_exists - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.candidate_row_unique - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.candidate_side_choice - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.even_row_columns - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.odd_row_columns - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.placement_bottom_after_central - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.placement_eq_candidate - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.placement_top_before_central - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.result - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.same_down_iff - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.side_word_stays_in_block - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.tip_word_is_singleton - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.white_iff_pattern - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.white_same_across - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.zeroWhite - Truth anchor:
D5/S3/Combinatorics/CrosswordRookCounts.zero_rook_count - Dependency: D5/S3/Combinatorics/CrosswordRookCountsDefs