Completion of a sparse partial Latin array with few symbols
ProvedProofsInTheBook.Chapter33.lemma2_few_elements_completesauxiliary-lemmabook-chapter-36combinatoricslatin-squareslean4proofs-from-the-book
Write for , with . A partial array of order is a map , with denoting an empty cell. Write and . It is partial Latin when no symbol repeats within a row or column. A completion is a map injective in each row and column, with whenever . Let and let be partial Latin of order . If
then has a completion of order .
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.lemma2_few_elements_completes (n : ℕ)
(P : Fin n → Fin n → Option (Fin n)) (hP : IsPartialLatin P)
(hcard : (filledCells P).card + 1 <= n)
(helem : 2 * (elementsUsed P).card <= n) :
∃ L : Fin n → Fin n → Fin n, Completes P L := by sorrySource
Original formalization: https://github.com/xiangyazi24/proof_in_the_book/blob/88d88d141768cded75e782c525ef1bf04b8fe220/ProofsInTheBook/Chapter33Ryser.lean#L1476. 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).