Line cover

A pair placement that would leave a row or column of its letter or digit class with no home is impossible

How to use it

Within transversal's Symbol tables pass, this is the covering-rules step — an assumption-free closure of one symbol's residual table.

Pick one letter (or one digit) and write down the leftover pairs of that symbol and the cells that can still host them. Cells that already hold the symbol are pins: those rows and columns are taken. The leftover pairs must still cover every other row and every other column.

Three rules to apply, in any order:

  • if a still-needed row (or column) can only be entered by one leftover pair, that pair lives on that line — drop its other homes;
  • if a leftover pair has only one cell left, that cell's row and column are taken from every other leftover pair;
  • if putting a pair in a cell, then applying those two rules, leaves some row or column homeless (or wipes another leftover pair), that pair cannot sit there.

The check is a small covering table per symbol — the same size as an xy-chain, not an exhaustive matching. Chips away at a stall symbol by symbol.

Why it is sound

Each letter occupies one cell in every row and every column (and each digit does the same). A still-needed row that only one leftover pair can enter must take that pair; a pair left with one cell takes that row and column from the others. If assuming a candidate and applying those two rules leaves a row or column with no home, that candidate is impossible. The rules only remove configurations that cannot appear in any solution. The technique is sound but incomplete: a placement may fail for a deeper matching reason these two local rules do not see.