- Code: Select all
.--------------.--------------.--------------.
| 8 2 136 | 17 79 367 | 5 369 4 |
| 4 7 36 | 5 29 236 | 8 1 69 |
| 9 156 356 | 8 13 4 | 2 36 7 |
:--------------+--------------+--------------:
| 67 16 8 | 2 4 37 | 19 5 139 |
| 5 9 4 | 6 13 8 | 7 2 13 |
| 2 3 17 | 17 5 9 | 6 4 8 |
:--------------+--------------+--------------:
| 67 456 9 | 3 278 257 | 14 68 126 |
| 3 8 2 | 49 6 1 | 49 7 5 |
| 1 456 567 | 49 278 25 | 3 689 269 |
'--------------'--------------'--------------'
The pattern is: r7c56 (2578); r7c18 (678); r9c6 (25). (Hodoku adds the naked pair 49 in r89c4 to the 25 in r9c6, but this seems unnecessary.)
This seems to work because:
(1) r7c1568 form an N+1 ALS (25678 over 4 cells); if any of {6,7,8} is the solution in any other cell in r7, then they become a locked set. Since 2 and 5 only occur in r7c5 and r7c6, r9c6 is forced to be empty.
(2) r7c56 and r9c6 form an N+1 ALS (2578 over 3 cells); if either of {2,5} is the solution in any other cell in block 8, then they become a locked set. Since 7 and 8 only occur in r7c5 and r7c6, both r7c1 and r7c8 are forced to be 6.
SDC seems to work by taking an N+2 ALS at the intersection of a line and a block, and two N+1 ALSes (I'll call them component ALSes), one in the line and the other in the block, to form two larger intersecting N+1 ALSes. The component ALSes must be disjoint. Any candidate in the larger line ALS in a cell in the line outside the pattern, and any candidate in the larger block ALS in a cell in the block outside the pattern, can then be eliminated.
But... even this doesn't seem general enough, since the 2- or 3-cell pattern at the line-block intersection (the "intersection component") might be an N+3 or greater ALS as well. It seems the strategy will work as long as the disjoint component ALSes, whatever their order, combine with the intersection component to form two intersecting N+1 ALSes. That way any candidate in a cell outside the pattern that can see all instances of that candidate inside the pattern would, if it were true, reduce either the larger block or line ALS to a locked set, preventing a solution in one or more cells in one or the other component ALSes.
Is this correct? Is there a more general description of SDC? References would be appreciated - the most general one I could find is on Andrew Stuart's site (which also gives the more general definition of WXYZ-Wing, thanks @jco)... and that definition doesn't seem to allow for the addition of candidates into the pattern not contained in the intersection component.