I'm starting to code y-wing strategy into my sudoku program.

The 'classic' representation of y-wing (from http://www.sudokuwiki.org/Y_Wing_Strategy) is:

- Code: Select all
`. . . | . . .`

. AB . | . BC .

. . . | . . .

-------+--------

. . . | . . .

. AC . | . C .

where:

AB = pivot

BC & AC = pincers

C can be discarded.

My question is, is it (also) possible to have:

- Code: Select all
`. . . | . . . | . . .`

. AB . | . BC . | . BD .

. . . | . . . | . . .

-------+--------+--------

. . . | . . . | . . .

. AC . | . C . | . . .

. . . | . . . | . . .

-------+--------+--------

. . . | . . . | . . .

. AD . | . . . | . D .

where:

AB = pivot

BC & AC = pincers

C can be discarded.

and

BD & AD = pincers

D can be discarded.

In other words, can y-wing's pivots be "used" multiple times, using the same (where C = D) or different (where C != D) discard candidates?