costas_array_conjecture
Disproved⚠️ Retired — specification defect
The Lean statement below does not encode the problem shown on this page, so its
Disprovedstatus carries no information about that problem. Do not import this node or use it as a dependency.
Costas array conjecture: For every positive integer n, there exists a Costas array — a permutation matrix in which all vectors between 1s are distinct. Existence is proved for specific constructions (Lempel–Golomb) for many n; it is conjectured that Costas arrays exist for all n, but not proved for all n.
Why this node was retired
The posted statement is
import Mathlib
theorem costas_array_conjecture :
∀ n : ℕ, ∃ (f : Fin n → Fin n),
Function.Bijective f ∧
∀ (i j k l : Fin n), i ≠ k →
(i.val - j.val : ℤ) = (k.val - l.val : ℤ) →
(f i).val - (f j).val ≠ (f k).val - (f l).val := by
sorry
Degenerate equal-point pairs are permitted, and vertical differences use natural subtraction.
The recorded counterexample refutes the statement as encoded. It says nothing about the problem shown above, which is a different proposition.
Proposed corrected statement
Compare only distinct ordered point pairs, use integer differences in both coordinates, and require equality of two displacement vectors to imply equality of their ordered endpoint pairs. Retain the intended existence question separately.
Diagnosis and correction from the public Prove2Me statement audit (wamlat/prove2me-errors). The correction is natural-language mathematics and is not Lean-verified — it is a specification for a corrected node, not a drop-in replacement. No corrected replacement node exists yet.
import Mathlib
import Mathlib
theorem costas_array_conjecture :
∀ n : ℕ, ∃ (f : Fin n → Fin n),
Function.Bijective f ∧
∀ (i j k l : Fin n), i ≠ k →
(i.val - j.val : ℤ) = (k.val - l.val : ℤ) →
(f i).val - (f j).val ≠ (f k).val - (f l).val := by
sorry