For example, with notation thus
- pattern: /xy ... candidates x and y are holes; *xy ... all except candidates x and y are holes
- implies: -xy ... candidates x and y are eliminated; =xy ... all except candidates x and y are eliminated
- Code: Select all
. . . | . . . | . . .
. . . | . . . | . . .
. . . | . . . | . . .
---------+----------+---------
. . . | . . . | . . .
. . . | . . . | . . .
. . . | . . . | . . .
---------+----------+---------
-1 -1 -1 | . . . | . . .
-1 -1 -1 | . . . | . . .
. . . | /1 /1 /1 | /1 /1 /1
I'd like to know: what are the "fundamental" patterns of holes and what do they eliminate?
There is no good definition of "fundamental", so that's where I was hoping I might get your thoughts. There might not be any sensible definition of "fundamental", but let's not give up immediately.
Axiom 1: I think there's one uncontroversial rule that all "fundamental" patterns should obey: there must be at least one elimination that requires all the holes. In the box/line reduction example, the elimination at r7c1 (or indeed any other) cannot be made if any of the holes in r9 is missing. (As an aside, I admit it's a bit of a double negative to talk about missing holes ...) You need this axiom to stop me adding 1r5c5 (say) as a hole and claiming that the pattern is still fundamental.
Because of axiom 1, I will only ever show the eliminations that require all of the holes ("critical" eliminations, if you like). This takes a bit of getting used to, for example in the hidden-single-in-a-box pattern ...
- Code: Select all
. . . | . . . | . . .
. . . | . . . | . . .
. . . | . . . | . . .
---------+----------+---------
. . . | . . . | . . .
. . . | . . . | . . .
. . . | . . . | . . .
---------+----------+---------
. . . | . . . | =1 /1 /1
. . . | . . . | /1 /1 /1
. . . | . . . | /1 /1 /1
It takes a fair amount of work just to enumerate small patterns that satisfy axiom 1. So far, I've limited myself to patterns where the holes are contained within at most two rows, columns, boxes or cells. I ended up with 55 distinct patterns, all of which are listed in the next post (EDIT: to which I'll add comments as the discussion progresses). I think that pretty much any (non-uniqueness) technique you can think of on at most two rows/cols/boxes/cells is covered by that list, which is great -- it's a demonstration of automatic pattern discovery.
On the other hand, many of the listed patterns look like they're the aggregate of other, simpler, components, and so are not intuitively fundamental. That means (if this exercise has any hope of success) that we need more axioms to prune the rubbish from the list. What additional axioms would you suggest?