I like the idea of programming up at least some of the options to see what they buy, but before I do I want to make sure I'm not unnecessarily restricting possible elimination. I've updated the list of new eliminations based on previous posts and see some significant differences in how things are presented as well as adding some options which I knew were missing (UR+3K and UR+4K). Although I don't use the term ALS (the descriptions seemed easier by describing the key characteristics rather than using ALS terminology) clearly that is what is being used. Obviously the definitions can apply with "a" and "b" switched or with "x", "Y", etc switched.

--- UR+2kx: two cells in a line, one with an extra candidate, "x", and one with at least one other extra different candidate, "Y", plus "(b)(a)x" common to "abx" which can contain “a” and which can also contain "b" if common to the "ab" which is in line with "abY" => "a" can be removed from "abY".

- Code: Select all
`ab ab `

abx abY (b)(a)x

--- UR+2kd: two diagonal cells one with an extra candidate, "x", and one with at least one other extra different candidate, "Y", plus "(a)(b)x" common to "abx" which can contain “b” and which can also contain "a" if common to "abY" => "a" can be removed "abY".

- Code: Select all
`ab abY `

abx ab (a)(b)x

--- UR+2KX: two cells in a line, with extra candidates "X" and "Y" plus extra cells, "(b)(a)U...", which can contain “a”, such that U is a locked set which includes "X", "abX" is seen by all cells of "(b)(a)U..." which contain elements of "X", and "(b)(a)U..." can contain "b" if the "ab" which is in line with "abY" is seen by all of the cells of "(b)(a)U..." which contain "b" => "a" can be removed from "abY".

- Code: Select all
`ab ab `

abX abY (b)(a)U...

--- UR+2KD: two diagonal cells, with extra candidates "X" and "Y" plus extra cells, "(a)(b)U...", which can contain “b”, such that U is a locked set which includes "X", "abX" is seen by all cells of "(a)(b)U..." which contain elements of "X", and "(a)(b)U..." can contain "a" if "abY" is seen by all cells of "(a)(b)U..." which contain "a" => "a" can be removed from "abY".

- Code: Select all
`ab abY `

abX ab (a)(b)U...

--- UR+3kx: three cells, two with one extra candidate, "abx" and "abz", and one with at least one other extra candidate, "abY", plus "(a)(z)x" common to "abx" and which can contain "a" if common to "abY" and/or "z" if common to "abz" and "(a)(x)z", plus "(a)(x)z" common to "abz" and which can contain "a" if common to "abY" and "x" if common to "abx" and "(a)(z)x" => "a" can be removed "abY".

- Code: Select all
`ab abz (a)(x)z `

abx abY (a)(z)x

--- UR+3kd: three cells, two with one extra candidate, "abx" and "abz", and one with at least one other extra candidate, "abY", plus "(a)(b)(z)x" common to "abx" and which can contain "a" if common to "abY", "b" if common to "ab" and/or "z" if common to "abz" and "(a)(b)(x)z", plus "(a)(b)(x)z" common to "abz" and which can contain "a" if common to "abY", "b" if common to "ab", and/or "x" if common to "abx" and "(a)(b)(z)x" => "a" can be removed "abY".

- Code: Select all
`abz ab (a)(b)(x)z `

abx abY (a)(b)(z)x

--- UR+3KX: three cells with extra candidates "X", "Y", and "Z", plus extra cells, "aU...", such that U is a locked set which includes "X", "abX" is seen by all cells of "aU..." which contain elements of "X", and "abY" is seen by all cells of "aU..." which contain "a", plus additional extra cells "aV...", such that V is a locked set which includes "Z", "abZ" is seen by all cells of "aV..." which contain elements of "Z", and "abY" is seen by all cells of "aV..." which contain "a" => "a" can be removed from "abY". Note that "U", and "V" need not be disjoint.

- Code: Select all
`ab abZ aV... `

abX abY aU...

--- UR+3KD: three cells with extra candidates "X", "Y", and "Z", plus extra cells, "(a)(b)U...", such that U is a locked set which includes "X", "abX" is seen by all cells of "(a)(b)U..." which contain elements of "X", and "(a)(b)U..." can contain "a" if "abY" is seen by all cells of "(a)(b)U..." which contain "a" and/or "(a)(b)U..." can contain "b" if "ab" is seen by all cells of "(a)(b)U..." which contain "b", plus additional extra cells "(a)(b)V...", such that V is a locked set which includes "Z", "abZ" is seen by all cells of "(a)(b)V..." which contain elements of "Z", and "(a)(b)V..." can contain "a" if "abY" is seen by all cells of "(a)(b)V..." which contain "a" and/or can contain "b" if "ab" is seen by all cells of "(a)(b)V..." which contain "b" => "a" can be removed from "abY". Note that "U", and "V" need not be disjoint.

- Code: Select all
`abZ ab (a)(b)V... `

abX abY (a)(b)U...

--- UR+4kx: four cells, three with one extra candidate, "abx", "abz", and "abw", and one with at least one other extra candidate, "abY" similar to UR+4KX with U, V, and T some appropriate combination of {"(a)(w)(z)x", "(a)(x)(w)z", "(a)(x)(z)w"} => "a" can be removed "abY".

- Code: Select all
`abw abz (a)(x)(w)z (a)(x)(z)w`

abx abY (a)(w)(z)x

--- UR+4KX: four cells with extra candidates "X", "Y", "Z", and "W", plus extra cells, "aU...", such that U is a locked set which includes "X", "abX" is seen by all cells of "aU..." which contain elements of "X", and "abY" is seen by all cells of "aU..." which contain "a", plus additional extra cells "aV...", such that V is a locked set which includes "Z", "abZ" is seen by all cells of "aV..." which contain elements of "Z", and "abY" is seen by all cells of "aV..." which contain "a", plus additional extra cells "aT...", such that "T" is a locked set which includes "W", "abW" is seen by all cells of "aT..." which contain elements of "W", and "abT" is seen by all cells of "abY" which contain "a" => "a" can be removed from "abY". Note that "U", "V", and "T" need not be disjoint.

- Code: Select all
`abW abZ aV... aT...`

abX abY aU...

RW has also developed two techniques which use something like an Empty Rectangle.

--- UR+4rx: two cells in a line and box, with extra candidates, "X" and "Y", plus "b" only exists possibly in "abX" and in line with the rightmost "ab" and "abY" => "a" can be removed from "abY"

- Code: Select all
`ab ab `

----------

abX - abY

- - (b)...

- - (b)...

--- UR+4rd: two diagonal cells, with extra candidates, "X" and "Y", with "abX" and the rightmost "ab" in a box, plus "a" only exists possibly in "abX" and in line with the rightmost "ab" and "abY" => "a" can be removed from "abY"

- Code: Select all
`ab abY `

----------

abX - ab

- - (a)...

- - (a)...

Here are how RW's later set of ALS examples maps into the above definitions. There are a couple which, as far as I can tell, do not map into ALS and thus not into the definitions. I'm happy to let these go for now and deal with them later.

- Code: Select all
`UR+3KD: X=z, Z=z, U={xz,abx}, V=U`

abz abz xz

ab abY abx

UR+3kd:

abz ab bz

abx abY ax

UR+2KD: U={"bxz", "bxz"}

abx ab bxz bxz

ab abY

UR+3KD: X=x, Z=x, U={axz,abz}, V=U

abx ab

----------

axz abz

abx abY

UR+3KD: X=x, Z=z, U={bz,xz}, V={bz}

abz ab bz

abx abY xz

UR+2KD: X=z, U={bxz,bx}

abz ab bxz

ab abY bx

Non-ALS configuration:

az

ab ab

----------------

abxz abY ax

Non-ALS configuration:

ax

abz ab bz

----------------

abx abY

UR+3KD: X=xz, Z=xz, U={axz,axz}, V=U

abxz ab

----------

axz

axz

abxz abY

UR+2KX: X=xz, U={abxz,abxz}

ab abxz

-----------

abxz

abxz

ab abY

Although trying to figure out the general rules has been fun, its time to start programming and see what else I missed.