Transversal chain
Try a candidate pair, propagate forced deductions within one symbol's transversal; if a row/col/digit empties, the candidate is impossible
How to use it
Also a per-hypothesis check within transversal, the other way a hypothesis can fail: a row, column or partner slot left empty.
Tentatively place a candidate pair for a letter, then follow only the forced footsteps: a cell left with a single partner option must take it; a partner left with a single cell must go there. If the chain empties a row, a column or a partner slot, the original candidate is impossible — block it.
It reads like a by-hand proof: "try A6 here, then A4 is forced, then A3, then column 4 has no home for A — contradiction". Each chain is a handful of steps inside one letter's (or digit's) leftover table; run it on the most-constrained symbols first, where the chains are short.
Why it is sound
For a single letter (or digit), tentatively place a candidate pair, then propagate only forced deductions: mono-option cells must take their last remaining partner, and partners with only one candidate cell must go there. If this chain empties a row, column, or digit slot, the original candidate is impossible. This is the same forced-consequence reasoning applied step by step ('try A6 here, then A4 is forced, then A3, then column 4 is empty — contradiction'). Sound because the chain proves the candidate appears in no valid transversal.