Pat wrote:my chain ( either one of them ) is a single implication-stream and thus not a "forcing chain" -- so, what would you call it ?

There are a minimum of two implication streams associated with

every valid elimination. A chain, not to be confused with nets such as Sudoku Explainer's region forcing chains and cell forcing chains, has

exactly two implication streams.

Consider this r1c3<>1 elimination example.

- Code: Select all
` 13 8 34-1 | 5 6 2 | 9 7 34`

2 359 *3459 | 37 79 1 |*348 6 348

36 369 7 | 4 8 39 | 2 5 1

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

4 36 368 | 2 1 5 | 7 9 68

9 2 *18 | 6 3 7 |*148 48 5

156 7 156 | 9 4 8 | 16 3 2

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

8 1 39 | 37 279 6 | 5 24 349

356 4 3569 | 1 259 39 | 368 28 7

7 3569 2 | 8 59 4 | 36 1 369

The nice loop (NL) expression is:

- Code: Select all
` r1c3 -1- r5c3 =1= r5c7 =4= r2c7 -4- r2c3 =4= r1c3, implies r1c3<>1`

A nice loop is meant to be read both left-to-right (L->R) and right-to-left (R->L); read L->R, you get one implication stream; read R->L, you get the second.

One can start anywhere in the loop, so let's start with r2c7. Ultimately either r2c7=4 or r2c7<>4:

- Code: Select all
`L->R: r2c7=4 -> r2c3<>4 -> r1c3=4 -> r1c3<>1`

R->L: r2c7<>4 -> r5c7=4 -> r5c7<>1 -> r5c3=1 -> r1c3<>1

In both cases, r1c3<>1. Therefore, r1c3<>1.

Now start with the left

end of the NL instead. Ultimately either r1c3=1 or r1c3<>1.

- Code: Select all
`L->R: r1c3=1 -> r5c3<>1 -> r5c7=1 -> r5c7<>4 -> r2c7=4 -> r2c3<>4 -> r1c3=4 -> r1c3<>1`

R->L: r1c3<>1

In both cases, as before, r1c3<>1. Therefore, r1c3<>1.

When the implication streams start at the elimination cell, i.e., the discontinuity of the nice loop, we simply don't bother to write the second implication stream ... but that doesn't mean the second one doesn't exist. From this POV, therefore, your "single implication chains" are forcing chains.