Adjoining one row to a Latin rectangle
ProvedProofsInTheBook.Chapter33.latin_rectangle_extend_oneauxiliary-lemmabook-chapter-36combinatoricslatin-squareslean4proofs-from-the-book
Write for , with . Let satisfy , and let be injective in each row and column. There exists an injective map such that
Preamble
import Init import Mathlib import Definitions.Def_P2MAssembly_Chapter33 set_option autoImplicit true open Finset open Classical open ProofsInTheBook.Chapter33
Formal statement
theorem ProofsInTheBook.Chapter33.latin_rectangle_extend_one {r n : ℕ} (R : Fin r → Fin n → Fin n)
(hrow : ∀ i : Fin r, Function.Injective (R i))
(hcol : ∀ j : Fin n, Function.Injective fun i : Fin r => R i j)
(hrn : r < n) :
∃ row : Fin n → Fin n, Function.Injective row ∧ ∀ i j, row j ≠ R i j := by sorrySource
Original formalization: https://github.com/xiangyazi24/proof_in_the_book/blob/88d88d141768cded75e782c525ef1bf04b8fe220/ProofsInTheBook/Chapter33.lean#L245. Topic: Aigner and Ziegler, Proofs from THE BOOK, 6th edition, Chapter 36, “Completing Latin squares”, pp. 253–258 (https://doi.org/10.1007/978-3-662-57265-8_36).