/-- **A check digit cannot tell you which digit is wrong.** The received number `3-26-148410-X`
is invalid, and it is one digit away from **two different** valid ISBN-10s, `3-16-148410-X`
and `1-26-148410-X`. So the scheme detects the error but cannot correct it. -/
theorem cannot_correct :
¬ ValidISBN10 [3, 2, 6, 1, 4, 8, 4, 1, 0, 10] ∧
ValidISBN10 [3, 1, 6, 1, 4, 8, 4, 1, 0, 10] ∧
ValidISBN10 [1, 2, 6, 1, 4, 8, 4, 1, 0, 10] ∧
OneDigitApart [3, 2, 6, 1, 4, 8, 4, 1, 0, 10] [3, 1, 6, 1, 4, 8, 4, 1, 0, 10] ∧
OneDigitApart [3, 2, 6, 1, 4, 8, 4, 1, 0, 10] [1, 2, 6, 1, 4, 8, 4, 1, 0, 10] := by
refine ⟨by decide, by decide, by decide, ?_, ?_⟩
· exact ⟨[3], [6, 1, 4, 8, 4, 1, 0, 10], 2, 1, by decide, rfl, rfl⟩
· exact ⟨[], [2, 6, 1, 4, 8, 4, 1, 0, 10], 3, 1, by decide, rfl, rfl⟩