A) FULLY SUPERSYMMETRIC CHAINS or 3DCHAINS:
NRC, NRCT, NRCZ AND NRCZT CHAINS
Before the introduction of 3D chains and apart from
cchains, all the chains I had considered were defined and
could be spotted as (pure or extended) xychains in either
of the two dimensional rc, rn or cn spaces: (h)xy(z)(t)
chains. Surprisingly, this was enough to solve 97% of the
randomly generated puzzles.
Nevertheless, for the remaining puzzles, some way of
"knitting" through the two dimensional spaces is needed.
cchains are the simplest example of such a knitting. This
post introduces more general three dimensional (3D) chains,
which are the 3D analogues of the two dimensional xy, xyt
and xyzt chains.
The general idea remains the same: the presence of any
candidate that is already ruled out by previous
rightlinking candidate in the chain (or by the target) can
be forgotten as an additional candidate whenever convenient
(but it can still be used as a left linking candidate for
the next cells). In order to use this idea in the 3D view,
we just have to slightly adapt its formulation.
A1) GENERAL DEFINITIONS AND THEOREMS
GENERAL 3DCHAINS
The basic notion underlying the 3Dchains is that of an nrclink.
Definition: two candidates n1r1c1 and n2r2c2 are nrclinked
if they are different and:
 either n1=n2 and the two rccells (r1, c1) and (r2, c2)
are rclinked (i.e. share a unit) in rcspace,
 or n1 <> n2 and the rccells (r1, c1) and (r2, c2)
are the same.
Being nrclinked is the most general, fully supersymmetric,
support for the immediate detection of a contradiction
between two nrccandidates. It is quasi "physical" in the
sense that it depends only on the grid structure. In
particular, it does not depend on the truth value of these
candidates. (Of course, if one of the candidates is true the
other must be false, but this is how we use the link, it is
not its factual definition).
An nrclink is written in the simplest and most natural way
as "".
Here are now the most basic definitions for chains.
Definition: a 3Dchain is a
sequence of candidates, such that the first and the last
candidates in the sequence are different (there is no
global loop) and any two consecutive candidates are
nrclinked.
Definition: a target of a 3Dchain
is a candidate that does not belong to the 3Dchain and
that is nrclinked to both endpoints of the 3Dchain.
Notice that, in conformance with the approach adopted in my
book, targets never belong to the chain. This allows to
define specific types of chains with homogeneous patterns
and this provides for the possibility of several targets for
the same chain.
Of course, interesting 3Dchains (i.e. 3Dchains that allow
eliminations) will impose additional conditions. For
examples, see the forthcoming definitions of nrc, nrct,
nrcz and nrczt chains.
Basically, these conditions will allow to group adjacent
candidates that are related by stronger links than mere
nrclinks.
Remark
on inner loops: notice that global loops are
excluded by definition, but not inner loops. Inner loops can
easily be proven
to be useless (in the sense that they don't lead to more
eliminations) for some types of chains (in 2D: xy, hxy, c,
xyz, hxyz; in 3D: nrc, nrcz).
It would therefore seem to be an arbitrary restriction to
exclude inner loops a
priori from chains with the textension. But, in
practice, inner loops are
useless. Moreover, nrczt chains or whips
in which inner loops would be allowed are subsumed by nrcztbraids in which allowing
loops is obviously a
priori useless.
Let us therefore say that 3D (nrc, nrcz, nrct, nrczt) chains
or whips that satisfy the noloop condition are "standard".
In all these web pages, only standard chains, lassos or
whips will be considered.
To be explicit, the noloop condition is expressed as: all
the candidates in the chain are different.
NRCCHAINS
Definition: two candidates n1r1c1 and n2r2c2 are nrcconjugate or nrcbivalue if they are
nrclinked and:
 either n1 <> n2, (r1, c1) and (r2, c2) are the same
rccell, and the only candidates for this cell are n1 and n2
 i.e. cell (r1, c1) is bivalue,
 or n1=n2, (r1, c1) and (r2, c2) are different rccells,
and there is a row, a column or a block along which (r1, c1)
and (r2, c2) are conjugate for n1 i.e. in which n1 is a
candidate for only these two cells.
"nrcconjugate" or "nrcbivalue" is the most general, fully
supersymmetric synthesis of two properties of candidates:
 the bivalue property of rccells,
 the conjugacy property of candidates, which is merely a
bivalue property of corresponding rn, cn of bncells in
rn, cn or bn space.
Definition: an nrcchain
of length n is a 3Dchain of 2n candidates such that, for
any odd k with 1 <= k <= n, n(2k1)r(2k1)c(2k1) and
n(2k)r(2k)c(2k) are nrcconjugate.
Here parentheses stand for subscripts, because I can't write
subscripts with the software of this forum.
Two nrcconjugate candidates will be represented by the
pattern {n1r1c1 n2r2c2}
An nrcchain (of length 3) can be represented by the
pattern:
{1 2} {3 4} {5 6}
where the curly braces indicate the nrcconjugacy relation.
Theorem (nrcchain rule):
given an nrcchain, any target candidate can be
eliminated.
NRCTCHAINS
Definition: given a set S of candidates, two candidates
n1r1c1 and n2r2c2 are nrcconjugate
modulo S if they do not belong to S, they are
nrclinked and:
 either n1 <> n2, (r1, c1) and (r2, c2) are the same
rccell, and the only candidates for this cell are n1, n2
and possibly any other value n such that (n, r2, c2) is
nrclinked to an element of S,
 or n1=n2, (r1, c1) and (r2, c2) are different rccells,
and there is a row, a column or a block along which (r1, c1)
and (r2, c2) are conjugate for n2 modulo S i.e. in which
n2 is a candidate only for these two cells and possibly for
any other cell (r, c) such that n1rc is nrclinked to an
element of S.
Definition: an nrctchain
of length n is a 3Dchain of 2n candidates such that, for
any odd k with 1 <= 2k <= n, n(2k1)r(2k1)c(2k1) and
n(2k)r(2k)c(2k) are nrcconjugate modulo the previous
rightlinking candidates.
Theorem (nrctchain rule):
given an nrctchain, any target candidate can be
eliminated.
NRCZCHAINS
Definition: given a candidate C, an nrczchain built on C is
a 3Dchain of even length 2n such that:
 for any odd k with 1 <= k <= n,
n(2k1)r(2k1)c(2k1) and n(2k)r(2k)c(2k) are nrcconjugate
modulo C,
 C is nrclinked to both endpoints of the chain  C is thus
the (nrcz) target of the nrczchain.
Theorem (nrczchain rule):
given an nrczchain, its target candidate can be
eliminated.
NRCZTCHAINS
Definition: given a candidate Z, an nrcztchain of length n
is a 3Dchain of 2n candidates such that:
 for any odd k with 1 <= k <= n,
n(2k1)r(2k1)c(2k1) and n(2k)r(2k)c(2k) are nrcconjugate
modulo the set consisting of Z plus the previous
rightlinking candidates,
 C is nrclinked to both endpoints of the chain  C is thus
the (nrczt) target of the nrcztchain.
An nrcztchain (of length 3) can be represented by the
pattern:
{1 2 (*)} {3 4 (*)} {5 6 (2#2)}
where (*) indicates an optional candidate conditioned by its
having an nrclink with the target.
Theorem (nrcztchain rule):
given an nrcztchain, its target candidate can be
eliminated.
In any of these chains, odd candidates are called
leftlinking and even candidates are called rightlinking.
This is because of their nrclink with the previous or the
next candidate.
PROOFS OF THE NRC, NRCT,
NRCZ AND NRCZT CHAIN RULES
The proofs of the nrc and nrct, nrcz and nrczt chain
rules follow the same general pattern, which is the
adaptation to 3Dspace of the proofs for the xy, xyt, xyz
and xyzt chain rules:
 for any of the chains without the zextension: if the
first candidate was false, then all the even candidates
would be true and all the odd candidates would be false;
 in the case of nrcz and nrczt chains, the target cell
has to be included in the proof itself: if the target was
true, then all the odd candidates would be false and all the
even candidates would be true.
In both cases, this can easily be proven by recursion on the
length of the chain.
The application to the chain rules themselves is
straightforward. For any target candidate C, if it was true
true, then it would be false; therefore, it is false.
What is difficult for these chains is not proving the
validity of the associated chain rules, it is:
 for the theoretician, establishing the proper definitons
in their full generality,
 for the player, spotting the actual chains on an actual
grid.
Remarks:
1) As in the 2D chains
case, the additional t or z candidates are not part of
the 3D chains.
This is not an arbitrary convention; it has practical
consequences: if I notice a chain but I don't use it
immediately (e.g. because I've seen a shorter one), then,
later, some z or t candidates may have disappeared; if the
leftlinking and rightlinking ones haven't changed, this
will still be the same chain. This is extensively used in
SudoRules.
2) All of the above
definitions can straightforwardly be extended to AICs,
which should be called in the above approach nrc chains of
subsets. We can thus get AICt and AICzt chains.
These have not been included in SudoRules 13.
OBVIOUS SUBSUMPTION
RELATIONSHIPS
nrcchains subsume xy, hxyrn and hxycn chains plus Nice
Loops (without subsets)
nrctchains subsume nrcchains, xyt, xytrn and cytcn
chains.
nrczchains subsume nrcchains, xyz, xyzrn and xyzcn
chains
nrcztchains subsume nrcchains, xyzt, xyztrn and
xyztcn chains
Lots of other, less obvious, subsumption relations are
available in the "subsumption"
page.
Theorem: nrcztchains
subsume the basic interactions.
See the subsumption page.
RESULTS
The nrc, nrct and nrczt chains have been included in
SudoRules version 13 (used for the second edition of the
book).
SudoRules 13 can solve all of the 10,000 randomly generated
puzzles in the Sudogen0 collection.
This is noticeable, since SudoRules 13 has no rule for
subsets (no Hinges, no Almost Locked Sets,
) and no rule for
Uniqueness.
SudoRules 13 can also solve all the puzzles in Ruuds
top10000.
Among the puzzles that cannot be solved with only the rules
described here:
 EasterMonster (for which no "pure logic" solution has yet
been found).
COMMENTS
1) Relationship with MINLs (Multiple Inference Nice Loops)
MINLs are nets (with branching and merging of different
paths) whereas any of the (h)xy(z)(t) or nrc(z)(t) chains is
a chain  i.e. a linearly ordered sequence of cells (for the
2D chains) or candidates (for the 3D chains).
In any of the chains I defined, there is always a single
path from head to tail: x1, y1, x2, y2, x3, y3 ......, xn,
yn.
The logic of these chains is also very simple. All are
conceptually straightforward (though very powerful)
extensions of the most basic xychains.
The (very standard) logic of an xychain (the once and for
all proof of the xychain theorem) is as follows:
If target
then not x1
then y1
then not x2
then y2
......
then
not xn
then
yn
then
not target.
Therefore not target
The yk => not x(k+1) steps are ensured by the existence
of a direct link between these 2 candidates.
The not xk => yk steps are ensured by a bivalue cell
containing only xk and yk.
The simplest generalisation consists of admitting additional
candidates in these bivalue cells: any candidates that are
linked to a previous y candidate or to the target. I suggest
you try first to find such xyt or xyzt chains. For examples,
you can look at the dedicated xytchains thread on this
forum.
The next step is transfering this result to the rn and cn
spaces, i.e. using exactly the same patterns but in the rn
or cn representations. The Sudocue program can generate
automatically these representations. If you have learnt to
find xy(z)t chains, then you`ll find easily their `hidden`
counterparts.
The next step starts with the nrc chains. These are just a
different view of the most basic NLs or AICs (which are
exactly the same thing). An nrcchains is just an xychain
in which:
 all the links are nrclinks between candidates instead if
links between cells
 and the ivalue relationship between each (xk, yk) couple
is replaced by a bivalue or bilocation relationship.
Now the same principle can be applied to nrcchains as was
applied to xychains: any of the bivalue or bilocation
relation can be relaxed to a bivalue or bilocation modulo
the previous yk candidates (the rightlinking candidates)
and/or the target. In practice, this merely means that any
candidate that might prevent the bivalue or bilocation
relation to hold may be forgotten (but not deleted  this is
just doable while a given chain is built) provided that it
is nrclinked to any of the previous yk or the target.
A2) CLASSIFICATION RESULTS FOR 3D CHAINS, or fully
supersymmetric chains or nrc(z)(t)chains
Although there is no reason for this, chains remain
frightening for some people.
This problem may be the result of the language often used to
speak of them ("weak" and "strong" links,
), confusing a
factual presence of a pattern on a grid and the way a
theorem allowing to draw conclusions from it has been proven
once and for all.
Chains are no more and no less patterns than any other
pattern (e.g. fish or pairs).
The following results show that most of the time, chains
needed to solve a puzzle can be of very limited length.
Definitions
Basic resolution rules (the L4_0 level in my book) are
defined as:
 Subsets of length 1 to 4: Naked + Hidden + Super Hidden
(fish)
 Basic Interactions
 XYWing, XYZWing
Levels L4,
Ln are defined as:
Ln = basic rules + 2D chains, i.e. (h)xy(z)(t) and c
chains, of length no more than n; the length of a 2D chain
is defined as the number of cells on which it lies (in its
base space: rc, rn or cn ), target not included;
Levels M4,
Mn are defined as:
Mn = Ln + 3D chains, i.e. nrc(z)(t)chains, of length no
more than n; the length of a 3D chain is defined as the
number of cells on which it lies when considered as a chain
of cells (i.e. half the number of its linking candidates),
target not included.
This convention amounts to considering bilocation links as
equivalent to bivalue links, i.e. to putting no penalty on
3D chains wrt 2D chains of the same length. This is the
stance usually adopted by adpets of AICs. But SudoRules
could be used with other conventions.
Collection of puzzles used for these results
The Sudogen0 collection has been used.
Remember that it is a randomly generated collection of
minimal puzzles; it was generated with the suexg / suexco
generator from Magictour. It is available on my web pages.
(Remember that "minimal" means that if a clue is deleted,
then the resulting puzzle has more than one solution).
Classification results
The following table gives the number of puzzles solved at
each level, in the L and M classifications.
level.......4..........5............6...........7
L.........8271.....8959......9326.......9472
M........9638.....9893......9964.......9984
Comments
As can be seen from these tables,
 99% of the randomly
generated minimal puzzles can be solved with 3D chains of
length no more than 5;
 almost all (99.84%) the
randomly generated minimal puzzles can be solved with 3D
chains of length no more than 7.
(Notice that all the remaining 16 puzzles are also solved by
SudoRules, but with longer chains).
3D chains are harder to discover than 2D chains, but they
allow to consider only short chains, compatible with the
idea taken from psychology that a human being's short term
memory has size 7 (+2).
A3) NRCZT CHAINS AND NRCZT LASSOS
Once we have built a partial nrct or nrczt chain, it is
normally ended on the right when its last rightlinking
candidate can be nrclinked to a target. But there appears
to be two other ways of getting a contradiction on the
target. Notice that the following remarks are not useful for
nrc or nrcz chains, due to the noloop theorems that can
be proven for them (as for xychains).
The first case is when there is already somewhere in the
partial chain a leftlinking candidate C that might be taken
as a rightlinking candidate of a later part of the chain if
we had not excluded loops. In this case, the target of the
partial chain can be eliminated (for the same reason as
usual: this situation leads to a contradiction). Notice
that, when this happens, the target can be eliminated but
nothing can be said directly about C; this is because the
part of the chain before C cannot be excised, due to the
tcandidates it may be used to justify in further cells. We
call this case an rllasso ("rl" because a rightlinking
candidate is equal to a previous leftlinking candidate).
(Notice that there is no full chain in this case and that a
target of an rllasso does not have to be linked to the last
candidate.)
The second case is when there is already somewhere in the
chain a rightlinking candidate C that might be taken as a
leftlinking candidate of a later part of the chain if we
had not excluded loops. As in the previous case, the target
can be eliminated (for the same reason and with the same
other remarks applying). We call this case an lrlasso ("lr"
because a leftlinking candidate is equal to a previous
rightlinking candidate). (Again, there is no full chain in
this case and that a target of an lrlasso does not have to
be linked to the last candidate.)
Generally, these lassos lead to slightly shorter partial
nrc(z)tchains and faster solutions, and they are
interesting for this reason, but they do not lead to
eliminations that could not have been obtained without them,
as shown by the following classification results.
More precisely, when applicable, they generally shorten the
chains by only 1 cell and very rarely by 2 cells. (This has
been tested on the full Sudogen0 collection of 10,000
puzzles).
We can therefore consider using them as a minor improvement
over nrc(z)(t) chains alone.
Updated classification results
The following table gives the number of puzzles solved at
each level, in the L, M and N classifications (elaborating
on the results given previously):
Level n in the N classification allows lassos of length n.
level.......4..........5............6...........7
L.........8271.....8959......9326.......9472
M........9638.....9893......9964.......9984
N........9658.....9913......9975.......9991
As can be seen from these tables,
 99% of the randomly
generated minimal puzzles can be solved with 3D chains or
lassos of length no more than 5;
 almost all (99.9%) the
randomly generated minimal puzzles can be solved with 3D
chains or lassos of length no more than 7.
(Notice that the 9 remaining puzzles are also solved by
SudoRules, but with longer chains or lassos).
More detailed results, based on a sample of 1,000,000
puzzles are available in the "ratings"
page.
A4) MODERATE LEVEL EXAMPLES OF NRC(Z)(T) CHAINS
Here are three pedagogic examples, in increasing
order of complexity. These puzzles are taken from the Ocean
collection, a vey nice collection, with all its puzzles
starting with one or more swordfish: http://www.sudoku.com/boards/viewtopic.php?t=4144
Puzzle #1uses only nrc chains (of length no more than 4).
Our first example, which is also #1 in the list uses only
nrcchains.
Remember that nrcchains are merely another view of "basic"
AICs, i.e. AICs with no subsets of any kind (groups, hinges,
).
The chains used in this example should therefore be
familiar.
000010002
001000030
040005600
000006700
300000005
008400000
007800040
050000900
200030000
swordfishincolumns n3{r7 r1 r6}{c2 c6 c7} ==> r7c9
<> 3, n3{r7 r1 r6}{c2 c6 c7} ==> r6c9 <> 3,
r1c4 <> 3, ==> r1c3 <> 3
swordfishincolumns n4{r4 r8 r2}{c1 c5 c9} ==> r8c6
<> 4, r8c3 <> 4, r4c3 <> 4, r2c7 <>
4, ==> r2c6 <> 4
swordfishinrows n5{r2 r6 r7}{c7 c1 c5} ==> r9c7
<> 5, r4c5 <> 5, r4c1 <> 5, r1c7 <>
5, r1c1 <> 5
nrc3chain n5{r9c8 r1c8}  {n5 n8}r2c7  {n8 n1}r9c7 ==>
r9c8 <> 1
nrc3chain {n1 n8}r9c7  {n8 n4}r1c7  n4{r1c6 r9c6} ==>
r9c6 <> 1
nrc3chain n2{r8c8 r7c7}  n3{r7c7 r7c2}  {n3 n6}r8c3
==> r8c8 <> 6
nrc4chain n3{r1c2 r1c6}  n4{r1c6 r2c5}  n4{r8c5 r8c1} 
n8{r8c1 r9c2} ==> r1c2 <> 8
nrc3chain n8{r9c2 r2c2}  {n8 n5}r2c7  n5{r7c7 r9c8}
==> r9c8 <> 8
nrc4chain n5{r1c3 r2c1}  n5{r2c7 r7c7}  n3{r7c7 r7c2} 
{n3 n6}r8c3 ==> r1c3 <> 6
nrc4chain {n9 n5}r1c3  n5{r4c3 r4c4}  n3{r4c4 r3c4} 
n3{r3c3 r1c2} ==> r1c2 <> 9
nrc4chain n3{r1c6 r3c4}  n3{r4c4 r4c9}  n4{r4c9 r2c9} 
n4{r2c5 r1c6} ==> r1c6 <> 9, r1c6 <> 8, r1c6
<> 7
nrc4chain {n6 n3}r8c3  n3{r3c3 r3c4}  {n3 n4}r1c6 
n4{r9c6 r8c5} ==> r8c5 <> 6
nrc3chain n6{r2c5 r7c5}  n5{r7c5 r7c7}  n5{r2c7 r2c1}
==> r2c1 <> 6
nrc3chain n6{r2c5 r7c5}  n5{r7c5 r7c7}  {n5 n8}r2c7
==> r2c5 <> 8
nrc4chain n2{r8c8 r7c7}  n5{r7c7 r7c5}  n6{r7c5 r2c5} 
n4{r2c5 r8c5} ==> r8c5 <> 2
nrc4chain {n8 n5}r2c7  n5{r7c7 r7c5}  n6{r7c5 r2c5} 
n4{r2c5 r2c9} ==> r2c9 <> 8
nrc4chain n6{r2c5 r7c5}  {n6 n1}r7c9  {n1 n8}r9c7 
n8{r9c2 r2c2} ==> r2c2 <> 6
row r2 interactionwithblock b2 ==> r1c4 <> 6
nrc3chain n6{r1c1 r1c2}  n3{r1c2 r7c2}  {n3 n6}r8c3
==> r8c1 <> 6, r7c1 <> 6
nrc3chain n6{r1c1 r6c1}  n5{r6c1 r2c1}  {n5 n9}r1c3
==> r1c1 <> 9
nrc4chain n6{r1c1 r6c1}  n5{r6c1 r4c3}  {n5 n9}r1c3  {n9
n7}r1c4 ==> r1c1 <> 7
nrc4chain {n7 n9}r1c4  {n9 n5}r1c3  n5{r4c3 r4c4} 
n3{r4c4 r3c4} ==> r3c4 <> 7
nrc4chain {n6 n3}r8c3  n3{r3c3 r3c4}  {n3 n4}r1c6 
n4{r9c6 r9c3} ==> r9c3 <> 6
nrc3chain n4{r4c1 r5c3}  {n4 n9}r9c3  {n9 n1}r7c1 ==>
r4c1 <> 1
nrc4chain {n1 n8}r9c7  {n8 n4}r1c7  {n4 n3}r1c6  n3{r6c6
r6c7} ==> r6c7 <> 1
nrc3chain {n2 n3}r6c7  n3{r4c9 r4c4}  n5{r4c4 r6c5}
==> r6c5 <> 2
nrc4chain {n2 n3}r6c7  n3{r7c7 r8c9}  n3{r8c3 r3c3} 
n2{r3c3 r2c2} ==> r6c2 <> 2
nrc4chain {n2 n3}r6c7  n3{r6c6 r4c4}  n5{r4c4 r9c4} 
n5{r9c8 r7c7} ==> r7c7 <> 2
(NS+HS)
635914872
981267534
742385619
419526783
326178495
578493261
197852346
853641927
264739158
Puzzle #3 uses nrct chains (still of length no more than 4)
The second example, #3 in the list, requires various kinds
of chains, including nrctchains of length upto 4.
Interestingly, it also uses 2D chains, i.e. chains in the
rc, rn and cn spaces. Remember that these chains are
particular case of nrc(z)(t) chains.
I keep have in SudoRules as independent chains because they
are easier to spot (in my view of things, more general does
not mean better).
Remember that 2D chains are enough to solve 97% of the
randomly generated puzzles  although nrc(z)(t) chains
sometimes allow using shorter chains (but 3D instead of 2D).
This is a very good example for understanding what is
allowed by the t extension.
000010002
001000030
040005600
000007400
300000006
008900000
006300080
050000100
200040000
swordfishincolumns n3{r9 r1 r6}{c2 c6 c7} ==> r9c9
<> 3, r9c3 <> 3, r6c9 <> 3, r6c5 <>
3, r1c3 <> 3
nrc3chain n4{r6c6 r6c1}  n4{r5c3 r8c3}  n4{r8c8 r1c8}
==> r1c6 <> 4
nrc4chain n3{r1c6 r3c5}  n3{r3c3 r8c3}  n4{r8c3 r5c3} 
n4{r6c1 r6c6} ==> r6c6 <> 3
hidden singles ==> r4c5 = 3, r1c6 = 3, r3c3 = 3, r9c2 =
3, r8c9 = 3, r6c7 = 3, r8c1 = 8, r2c2 = 2, r1c2 = 8
column c2 interactionwithblock b4 ==> r6c1 <> 6,
r4c1 <> 6
row r9 interactionwithblock b8 ==> r7c6 <> 1
hiddenpairsinablock {n1 n8}{r9c4 r9c6} ==> r9c6
<> 9, r9c6 <> 6, r9c4 <> 7, r9c4 <>
6
hiddensingleinarow ==> r9c8 = 6
hiddenpairsinablock {n1 n8}{r9c4 r9c6} ==> r9c4
<> 5
hiddensingleinablock ==> r7c5 = 5
block b8 interactionwithrow r8 ==> r8c8 <> 7,
r8c3 <> 7
nrc2chain n8{r2c7 r5c7}  n8{r4c9 r4c4} ==> r2c4
<> 8
nrczt2chain n8{r2c7 r5c7}  n8{r5c5 r3c5} ==> r2c6
<> 8
nrc3chain {n9 n2}r7c6  n2{r7c7 r8c8}  n4{r8c8 r7c9}
==> r7c9 <> 9
nrct3chain n2{r3c4 r3c5}  {n2 n8}r5c5  n8{r2c5 r3c4}
==> r3c4 <> 7
nrczt3chain n4{r6c1 r7c1}  {n4 n7}r7c9  n7{r7c2 r5c2}
==> r6c1 <> 7
nrczt3chain n5{r4c4 r5c4}  n5{r5c3 r1c3}  n5{r1c8 r6c8}
==> r4c9 <> 5
nrczt3chain n5{r5c4 r4c4}  n5{r4c3 r1c3}  n5{r1c8 r6c8}
==> r5c7 <> 5
hxytcn4chain {r1 r8}c8n4  {r8 r5}c3n4  {r5 r4}c3n2  {r4
r1}c3n5 ==> r1c8 <> 5
column c8 interactionwithblock b6 ==> r6c9 <> 5
nrc3chain {n1 n7}r6c9  {n7 n4}r7c9  n4{r7c1 r6c1} ==>
r6c1 <> 1
nrc4chain n5{r6c8 r6c1}  n4{r6c1 r7c1}  {n4 n7}r7c9  {n7
n1}r6c9 ==> r6c8 <> 1
nrct4chain {n2 n8}r5c5  n8{r5c7 r4c9}  n8{r3c9 r3c4} 
n2{r3c4 r3c5} ==> r8c5 <> 2, r6c5 <> 2
nakedsingle ==> r6c5 = 6
hiddensingleinarow ==> r4c2 = 6
nakedpairsinarow {n1 n7}r6{c2 c9} ==> r6c8 <>
7, r6c6 <> 1
hiddenpairsinacolumn {n1 n8}{r5 r9}c6 ==> r5c6
<> 4, r5c6 <> 2
swordfishincolumns n4{r7 r6 r2}{c1 c6 c9} ==> r2c4
<> 4
nrc2chain n2{r6c8 r6c6}  n2{r7c6 r7c7} ==> r8c8
<> 2
naked and hidden singles ==> r7c7 = 2, r7c6 = 9, r8c5 =
7, r5c2 = 9
column c1 interactionwithblock b1 ==> r1c3 <> 9
xy3chain {n2 n4}r6c6  {n4 n5}r6c1  {n5 n2}r4c3 ==>
r4c4 <> 2
xy3chain {n1 n8}r5c6  {n8 n7}r5c7  {n7 n1}r6c9 ==>
r5c8 <> 1
row r5 interactionwithblock b5 ==> r4c4 <> 1
xy3chain {n2 n5}r4c3  {n5 n8}r4c4  {n8 n2}r5c5 ==>
r5c3 <> 2
hiddensingleinablock ==> r4c3 = 2
nrc3chain {n5 n4}r6c1  n4{r5c3 r5c4}  n5{r5c4 r4c4}
==> r4c1 <> 5
naked and hidden singles ==> r4c1 = 1, r6c2 = 7, r7c2 =
1, r6c9 = 1, r3c8 = 1
xwinginrows n7{r3 r7}{c1 c9} ==> r9c9 <> 7, r2c9
<> 7, r2c1 <> 7 r1c1 <> 7
nrc3chain {n5 n9}r9c9  {n9 n4}r8c8  n4{r7c9 r2c9} ==>
r2c9 <> 5
hiddensingleinacolumn ==> r9c9 = 5
nrc3chain {n7 n5}r1c3  n5{r1c7 r2c7}  n7{r2c7 r2c4}
==> r1c4 <> 7
hiddensingleinablock ==> r2c4 = 7
nrc3chain n6{r2c1 r2c6}  n4{r2c6 r6c6}  {n4 n5}r6c1
==> r2c1 <> 5
(NS+HS)
685413792
921786534
743295618
162837459
394521876
578964321
416359287
859672143
237148965
Puzzle #6 uses nrczt chains (still of length no more than 4)
Our third example, #6 in the list, uses nrczt4 chains. After
you have understood with the previous example what is
allowed by the t extension, it will allow you to understand
what is allowed by the z extension.
000010002001000030040005600000007800100000005003400000006300090050000400200080000
swordfishincolumns n3{r9 r1 r5}{c2 c6 c7} ==> r9c9
<> 3, r5c5 <> 3, r1c1 <> 3
swordfishincolumns n4{r4 r7 r2}{c1 c5 c9} ==> r7c6
<> 4, r4c8 <> 4, r4c3 <> 4, r2c6 <>
4
swordfishinrows n5{r2 r6 r7}{c7 c1 c5} ==> r9c7
<> 5, r4c5 <> 5, r4c1 <> 5, r1c7 <>
5, r1c1 <> 5
nrczt3chain n1{r4c4 r6c6}  n1{r6c7 r7c7}  n1{r7c2 r9c2}
==> r9c4 <> 1
nrc4chain n5{r7c7 r7c5}  n5{r6c5 r4c4}  n1{r4c4 r8c4} 
{n1 n2}r7c6 ==> r7c7 <> 2
hiddensingleinablock ==> r8c8 = 2
column c8 interactionwithblock b3 ==> r3c9 <> 8,
r2c9 <> 8
nrc4chain n3{r1c6 r3c5}  n3{r4c5 r4c9}  n4{r4c9 r2c9} 
n4{r2c5 r1c6} ==> r1c6 <> 9, r1c6 <> 8, r1c6
<> 6
nrc4chain n4{r1c8 r2c9}  n4{r2c5 r7c5}  n5{r7c5 r7c7} 
n5{r9c8 r1c8} ==> r1c8 <> 8
hidden singles ==> r3c8 = 8, r3c9 = 1
row r8 interactionwithblock b8 ==> r9c6 <> 1,
r7c6 <> 1
nakedsingle ==> r7c6 = 2
nrct3chain n3{r5c7 r4c9}  n4{r4c9 r2c9}  n9{r2c9 r6c9}
==> r5c7 <> 9
nrc4chain n4{r1c8 r2c9}  n4{r2c5 r7c5}  n5{r7c5 r7c7} 
n5{r9c8 r1c8} ==> r1c8 <> 7
nrc4chain n3{r4c9 r5c7}  n3{r5c6 r1c6}  n4{r1c6 r1c8} 
n4{r5c8 r4c9} ==> r4c9 <> 9
block b6 interactionwithrow r6 ==> r6c6 <> 9,
r6c5 <> 9, r6c2 <> 9, r6c1 <> 9
nrc4chain n9{r6c9 r2c9}  n4{r2c9 r4c9}  n3{r4c9 r5c7} 
n2{r5c7 r6c7} ==> r6c7 <> 9
hiddensingleinablock ==> r6c9 = 9
nrc3chain {n7 n4}r2c9  {n4 n5}r1c8  n5{r2c7 r2c1} ==>
r2c1 <> 7
nrc4chain n5{r9c4 r9c8}  {n5 n4}r1c8  {n4 n7}r2c9  {n7
n6}r9c9 ==> r9c4 <> 6
nrc4chain n3{r1c2 r1c6}  n4{r1c6 r1c8}  {n4 n7}r2c9  {n7
n9}r1c7 ==> r1c2 <> 9
nrc4chain n3{r4c9 r5c7}  n3{r5c6 r1c6}  n4{r1c6 r1c8} 
n4{r5c8 r4c9} ==> r4c9 <> 6
column c9 interactionwithblock b9 ==> r9c8 <> 6
nrc4chain n4{r7c5 r9c6}  n4{r1c6 r1c8}  n5{r1c8 r9c8} 
n5{r9c4 r7c5} ==> r7c5 <> 7
nrct4chain {n8 n7}r7c9  {n7 n4}r2c9  n4{r4c9 r4c1}  {n4
n8}r7c1 ==> r7c2 <> 8
nrczt4chain {n7 n9}r1c7  {n9 n5}r2c7  n5{r1c8 r9c8} 
n7{r9c8 r5c8} ==> r6c7 <> 7
nrc3chain {n2 n1}r6c7  n1{r4c8 r4c4}  n5{r4c4 r6c5}
==> r6c5 <> 2
nrc4chain {n6 n5}r6c5  {n5 n4}r7c5  n4{r2c5 r1c6} 
n3{r1c6 r5c6} ==> r5c6 <> 6
nrczt4chain {n7 n9}r1c7  {n9 n5}r2c7  n5{r1c8 r9c8} 
n7{r9c8 r6c8} ==> r5c7 <> 7
block b6 interactionwithcolumn c8 ==> r9c8 <> 7
nrc3chain n1{r4c4 r4c8}  {n1 n5}r9c8  n5{r9c4 r4c4}
==> r4c4 <> 9, r4c4 <> 6
nrc3chain n1{r4c4 r4c8}  {n1 n5}r9c8  n5{r9c4 r4c4}
==> r4c4 <> 2
xy3chain {n6 n5}r6c5  {n5 n1}r4c4  {n1 n6}r4c8 ==>
r6c8 <> 6, r4c5 <> 6
nrc3chain {n1 n5}r9c8  n5{r9c4 r4c4}  n1{r4c4 r4c8}
==> r6c8 <> 1
nakedsingle ==> r6c8 = 7
nrc3chain {n2 n3}r5c7  {n3 n4}r4c9  n4{r5c8 r5c3} ==>
r5c3 <> 2
nrczt3chain n2{r6c2 r6c7}  n1{r6c7 r4c8}  n6{r4c8 r4c1}
==> r6c2 <> 6
nrczt3chain {n2 n3}r5c7  n3{r5c6 r4c5}  n2{r4c5 r4c3}
==> r5c2 <> 2
hxyrn4chain {c2 c6}r1n3  {c6 c8}r1n4  {c8 c3}r5n4  {c3
c2}r5n7 ==> r1c2 <> 7
nrc4chain {n8 n2}r6c2  n2{r6c7 r5c7}  n3{r5c7 r5c6} 
n3{r1c6 r1c2} ==> r1c2 <> 8
nrc4chain {n6 n3}r1c2  {n3 n4}r1c6  n4{r1c8 r5c8} 
n6{r5c8 r4c8} ==> r4c2 <> 6
nrc3chain n6{r4c1 r4c8}  {n6 n4}r5c8  n4{r5c3 r4c1}
==> r4c1 <> 9
nrc4chain n6{r4c1 r4c8}  {n6 n4}r5c8  {n4 n5}r1c8 
n5{r2c7 r2c1} ==> r2c1 <> 6
nrc4chain {n9 n2}r4c2  n2{r6c2 r6c7}  {n2 n3}r5c7 
n3{r9c7 r9c2} ==> r9c2 <> 9
nrc4chain {n9 n2}r4c2  n2{r6c2 r6c7}  {n2 n3}r5c7 
n3{r5c6 r4c5} ==> r4c5 <> 9
row r4 interactionwithblock b4 ==> r5c3 <> 9,
r5c2 <> 9
nrc3chain {n2 n3}r4c5  n3{r3c5 r1c6}  n4{r1c6 r2c5}
==> r2c5 <> 2, r2c5 <> 2
nrc4chain n1{r7c2 r7c7}  {n1 n2}r6c7  {n2 n3}r5c7 
n3{r9c7 r9c2} ==> r9c2 <> 1
hiddensingleinablock ==> r7c2 = 1
nakedtripletsinacolumn {n7 n9 n5}{r1 r2 r7}c7 ==>
r9c7 <> 7
nrc3chain n3{r8c9 r9c7}  {n3 n7}r9c2  {n7 n6}r9c9 ==>
r8c9 <> 6
hiddensingleinablock ==> r9c9 = 6
nrczt3chain n3{r8c9 r9c7}  {n3 n7}r9c2  n7{r7c1 r7c7}
==> r8c9 <> 7
block b9 interactionwithrow r7 ==> r7c1 <> 7
nrc3chain {n8 n4}r7c1  {n4 n5}r7c5  n5{r6c5 r6c1} ==>
r6c1 <> 8
nakedpairsinarow {n5 n6}r6{c1 c5} ==> r6c6 <> 6
hxyzt4rnchaintype1 {c3 c2}r5n7  {c2 c4}r9n7  {c4
c8}r9n5  {c8 c3}r1n5 ==> r1c3 <> 7
nrc4chain n7{r2c9 r7c9}  n8{r7c9 r8c9}  n3{r8c9 r8c1} 
{n3 n7}r9c2 ==> r2c2 <> 7
nrc4chain {n6 n5}r6c1  n5{r6c5 r4c4}  n1{r4c4 r4c8} 
n6{r4c8 r4c1} ==> r5c2 <> 6
column c2 interactionwithblock b1 ==> r1c1 <> 6
nrc3chain n6{r1c4 r1c2}  n3{r1c2 r1c6}  n4{r1c6 r2c5}
==> r2c5 <> 6
xyzt4chain {n7 n4}r2c9  {n4 n5}r1c8  {n5 n9}r2c7  {n9
n7}r2c5 ==> r2c4 <> 7
nrc4chain n6{r1c4 r1c2}  n3{r1c2 r1c6}  n4{r1c6 r1c8} 
{n4 n6}r5c8 ==> r5c4 <> 6
block b5 interactionwithcolumn c5 ==> r8c5 <> 6
hiddenpairsinablock {n1 n6}{r8c4 r8c6} ==> r8c6
<> 9, r8c4 <> 9, r8c4 <> 7
nrc3chain n7{r8c5 r9c4}  n5{r9c4 r7c5}  n4{r7c5 r2c5}
==> r2c5 <> 7
row r2 interactionwithblock b3 ==> r1c7 <> 7
nakedsingle ==> r1c7 = 9
nrc2chain n7{r8c5 r3c5}  n7{r1c4 r1c1} ==> r8c1
<> 7
column c1 interactionwithblock b1 ==> r3c3 <> 7
nrc3chain {n8 n5}r1c3  {n5 n4}r1c8  n4{r5c8 r5c3} ==>
r5c3 <> 8
block b4 interactionwithcolumn c2 ==> r2c2 <> 8
nrc3chain n7{r1c1 r1c4}  n6{r1c4 r1c2}  n3{r1c2 r3c1}
==> r3c1 <> 7
hiddensingleinablock ==> r1c1 = 7
hiddenpairsinablock {n5 n8}{r1c3 r2c1} ==> r2c1
<> 9
hiddenpairsinacolumn {n3 n9}{r3 r8}c1 ==> r8c1
<> 8
xy3chain {n7 n9}r8c5  {n9 n3}r8c1  {n3 n7}r9c2 ==>
r9c4 <> 7
hidden singles ==> r8c5 = 7, r3c4 = 7
row r8 interactionwithblock b7 ==> r9c3 <> 9
xy3chain {n9 n4}r2c5  {n4 n5}r7c5  {n5 n9}r9c4 ==>
r2c4 <> 9
nrc3chain {n8 n6}r1c4  n6{r1c2 r2c2}  n2{r2c2 r2c4}
==> r2c4 <> 8
xy4chain {n8 n7}r5c2  {n7 n3}r9c2  {n3 n6}r1c2  {n6
n8}r1c4 ==> r5c4 <> 8
(NS+HS)
765813942
821649537
349725681
692537814
174298365
583461279
416352798
958176423
237984156
A5) COMPLEX LEVEL EXAMPLE OF NRC(Z)(T) CHAINS
Here is now one of the most complex examples (Sudogen0
#707), where each step is the direct application of one of
these rules.
This example will also illustrate the nrcnotation.
Remember that, seen in rcspace:
 {n1 n2}rc means a bivalue cell
 n{r1c1 r2c2} means a conjugacy links for value n,
while all this merely means bivalue when seen in the proper
rc, rn; cn or bn space.
Remember also that, for chains with the t or z extensions,
bivalue and conjugacy are to be understood modulo the
previous right linking candidates (and modulo the target for
z extensions).
400300608
005001030
016040007
070000080
000002000
051006370
002090800
000100000
000004009
naked and hidden singles ==> r6c5 = 8, r1c8 = 1, r3c1 = 3
r3 interaction with b2 ==> r2c4 <> 8
r1 interaction with b2 ==> r3c6 <> 5 , r3c4
<> 5
c2 interaction with b1 ==> r2c1 <> 2
nakedpairsincolumn {n2 n4}{r2 r6}c9 ==> r8c9 <>
4 , r8c9 <> 2, r7c9 <> 4 , r5c9 <> 4 ,
r4c9 <> 4 , r4c9 <> 2
nrczt3chain n7{r5c5 r5c4}  n7{r2c4 r2c1}  n7{r7c1 r7c6}
==> r8c5 <> n7, r9c4 <> n7, r9c5 <> n7
nrczt6chain {n9 n2}r6c1  n2{r4c1 r4c7}  n2{r6c9 r2c9} 
n4{r2c9 r2c7}  n9{r2c7 r3c7}  n9{r3c8 r5c8} ==> r5c3
<> n9, r5c2 <> n9
nrczt6chain {n9 n2}r6c1  {n2 n6}r4c1  {n6 n8}r5c1 
n9{r5c1 r4c3}  {n9 n7}r1c3  {n7 n9}r2c1 ==> r8c1
<> n9
nrczt6chain {n9 n2}r6c1  n2{r4c1 r4c7}  n2{r6c9 r2c9} 
n4{r2c9 r2c7}  n9{r2c7 r3c7}  n9{r3c8 r5c8} ==> r5c1
<> n9
nrczt11chain {n6 n8}r5c1  n8{r2c1 r2c2}  {n8 n3}r9c2 
{n3 n4}r7c2  {n4 n5}r7c8  {n5 n7}r7c4  n7{r5c4 r5c5} 
n1{r5c5 r4c5}  n3{r4c5 r8c5}  n3{r7c6 r7c9}  n1{r7c9
r7c1} ==> r7c1 <> 6
nrczt13chain n9{r8c2 r8c3}  {n9 n7}r1c3  {n7 n8}r9c3 
n8{r8c1 r8c6}  n7{r8c6 r7c6}  n3{r7c6 r7c9}  n1{r7c9
r9c7}  n7{r9c7 r8c7}  n4{r8c7 r8c8}  n2{r8c8 r8c5}  {n2
n5}r1c5  n5{r1c6 r4c6}  n3{r4c6 r8c6} ==> r8c2 <>
3
nrczt13chain n6{r4c9 r4c1}  n2{r4c1 r4c7}  n2{r6c9 r2c9}
 n2{r3c8 r3c4}  n8{r3c4 n8r9c4}  n6{r9c4 r2c4}  {n6
n7}r2c5  n7{r2c1 r1c3}  {n7 n3}r9c3  n3{r7c2 r7c6} 
n7{r7c6 r8c6}  n7{r8c7 r9c7}  n1{r9c7 r7c9} ==> r7c9
<> 6
nrczt13chain n1{r9c1 r7c1}  n1{r7c9 r9c7}  n7{r9c7 r8c7}
 n7{r8c1 r2c1}  n8{r2c1 r2c2}  {n8 n3}r9c2  {n3 n4}r7c2
 {n4 n9}r8c2  {n9 n8}r8c3  n4{r8c3 r8c8}  n2{r8c8 r8c5}
 n6{r8c5 r8c9}  n6{r4c9 r4c1} ==> r9c1 <> 6
nrczt14chain n7{r8c7 r9c7}  n1{r9c7 r7c9}  {n1 n5}r7c1 
n7{r7c1 r2c1}  {n7 n9}r1c3  n9{r8c3 r8c2}  n4{r8c2 r7c2}
 {n4 n6}r7c8  {n6 n7}r7c4  n7{r5c4 r5c5}  n1{r5c5 r4c5}
 n3{r4c5 r4c6}  {n3 n7}r7c6  n7{r1c6 r8c6} ==> r8c3
<> 7
nrczt14chain n8{r9c4 r8c6}  n8{r3c6 r3c4}  n2{r3c4 r2c4}
 n6{r2c4 r2c5}  n7{r2c5 r2c1}  n7{r1c3 r9c3}  n8{r9c3
r5c3}  n8{r5c1 r9c1}  {n8 n3}r9c2  n3{r5c2 r5c5} 
n7{r5c5 r5c4}  {n7 n5}r7c4  {n5 n2}r8c5  {n2 n6}r9c5
==> r9c4 <> 6
nrczt11chain n3{r8c9 r7c9}  n1{r7c9 r9c7}  n7{r9c7 r8c7}
 n2{r8c7 r8c8}  n4{r8c8 r7c8}  {n4 n6}r7c2  n6{r7c4
r9c5}  {n6 n5}r9c8  n5{r3c8 r3c7}  n2{r3c7 r3c4} 
n2{r9c4 r8c5} ==> r8c5 <> 3
nrczt7chain n8{r9c4 r8c6}  n8{r8c3 r5c3}  n8{r5c1 r2c1} 
n7{r2c1 r1c3}  n7{r1c6 r7c6}  n3{r7c6 r9c5}  {n3 n8}r9c3
==> r9c2 <> 8
nrczt11chain n7{r5c4 r5c5}  n1{r5c5 r4c5}  n3{r4c5 r9c5}
 {n3 n6}r9c2  n6{r9c5 r8c5}  n2{r8c5 r9c4}  {n2 n5}r9c8
 {n5 n3}r8c9  {n3 n1}r7c9  {n1 n5}r7c1  {n5 n7}r7c6
==> r7c4 <> 7
b8 interaction with c6 ==> r1c6 <> 7
nrct7chain n7{r7c6 r7c1}  n7{r2c1 r1c3}  n7{r9c3 r9c7} 
n7{r8c7 r8c6}  n8{r8c6 r9c4}  {n8 n3}r9c3  n3{r9c5 r7c6}
==> r7c6 <> 5
nrct9chain n7{r5c4 r2c4}  n7{r2c1 r1c3}  n7{r1c5 r5c5} 
n1{r5c5 r4c5}  n3{r4c5 r9c5}  {n3 n8}r9c3  n8{r9c4 r8c6}
 {n8 n9}r3c6  n9{r3c8 r5c8} ==> r5c4 <> 9
r5 interaction with b6 ==> r4c7 <> 9
nrczt10chain {n6 n5}r7c4  {n5 n2}r8c5  {n2 n7}r2c5 
n7{r2c1 r1c3}  {n7 n5}r1c5  {n5 n9}r1c6  {n9 n8}r3c6 
n8{r8c6 r9c4}  {n8 n3}r9c3  {n3 n6}r9c2 ==> r9c5
<> 6
nrczt10chain {n5 n6}r7c4  {n6 n2}r8c5  {n2 n7}r1c5 
n7{r1c3 r9c3}  n7{r7c1 r7c6}  n3{r7c6 r8c6}  n3{r8c9
r7c9}  n1{r7c9 r9c7}  {n1 n8}r9c1  {n8 n5}r9c4 ==>
r9c5 <> 5
nrczt6chain {n6 n3}r9c2  {n3 n2}r9c5  {n2 n5}r8c5  {n5
n7}r1c5  {n7 n9}r1c3  n9{r8c3 r8c2} ==> r8c2 <> 6
nrczt8chain {n6 n3}r9c2  {n3 n2}r9c5  {n2 n5}r8c5  {n5
n8}r9c4  {n8 n7}r9c3  n7{r9c7 r8c7}  {n7 n3}r8c6  {n3
n6}r8c9 ==> r8c1 <> 6
c1 interaction with b4 ==> r5c2 <> 6
nrczt9chain {n2 n3}r9c5  {n3 n6}r9c2  {n6 n5}r9c8  {n5
n8}r9c4  {n8 n7}r9c3  {n7 n9}r1c3  {n9 n9}r1c6  {n5
n7}r8c6  n7{r8c7 r9c7} ==> r9c7 <> 2
nrczt9chain {n6r2c5 r2c4}  n7{r2c4 r2c1}  n7{r1c3 r9c3} 
n7{r9c7 r8c7}  n2{r8c7 r8c8}  n4{r8c8 r7c8}  n6{r7c8
r7c2}  {n6 n3}r9c2  {n3 n2}r9c5 ==> r2c5 <> 2
nrczt8chain n6{r9c2 r7c2}  n6{r7c4 r2c4}  {n6 n7}r2c5 
n7{r2c1 r1c3}  {n7 n8}r9c3  n8{r9c4 r8c6}  n7{r8c6 r7c6}
 n3{r7c6 r9c5} ==> r9c2 <> 3
nakedsingle ==> r9c2 = 6
nrc2chain n3{r9c5 r9c3}  n3{r7c2 r5c2} ==> r5c5
<> 3
r5 interaction with b4 ==> r4c3 <> 3
xywing {n4 n2}r6c9  {n2 n9}r6c1  {n9 n4}r4c3 ==> r4c7
<> 4
xyzt6chaintype3: on cells {n5 n2}r9c8  {n2 n3}r9c5  {n3
n7}r7c6  {n7 n8}r8c6  {n8 n9}r3c6 {n9 n5}r3c8 ==> r8c8
<> 5
nrczt6chain n3r9c5, n2r9c5, n2r9c8, n5r9c8, n5r8c9, n6r8c9,
n6r7c8, n4r7c8, n4r7c2, n3r7c2, n3r7c9 and n3r8c9 ==>
r8c6 <> 3
nrczt5chain n3r8c9, n3r7c9, n1r7c9, n1r9c7, n7r9c7, n7r8c7,
n7r8c6, n8r8c6, n8r8c1 and n5r8c1 ==> r8c9 <> 5
nrczt7chain n8{r3c4 r9c4}  n2{r9c4 r2c4}  n6{r2c4 r2c5} 
n7{r2c5 r2c1}  n7{r7c1 r7c6}  {n7 n5}r8c6  {n5 n9}r1c6
==> r3c4 <> 9
nrczt7chain n3{r4c6 r7c6}  n3{r9c5 r9c3}  n7{r9c3 r1c3} 
n9{r1c3 r1c2}  n2{r1c2 r1c5}  {n2 n8}r3c4  {n8 n9}r3c6
==> r4c6 <> 9
number 9: c6 interaction with b2 ==> r2c4 <> 9
nrczt6chain n1{r9c1 r9c7}  n7{r9c7 r9c3}  {n7 n9}r1c3 
n9{r1c6 r3c6}  n8{r3c6 r3c4}  n8{r9c4 r9c1} ==> r9c1
<> 5
nrct5chain n9{r5c8 r3c8}  n5{r3c8 r3c7}  n2{r3c7 r3c4} 
n8{r3c4 r9c4}  n5{r9c4 r9c8} ==> r5c8 <> 5
nrczt5chain n5{r3c8 r3c7}  n5{r9c7 r9c4}  n8{r9c4 r3c4} 
n2{r3c4 r3c8}  {n2 n5}r9c8 ==> r7c8 <> 5
xywing {n3 n6}r8c9  {n6 n4}r7c8  {n4 n3}r7c2 ==> r8c3
<> 3
hiddensingleinrow r8 ==> r8c9 = 3
column c9 interaction with block b6 ==> r5c8 <> 6
nrczt4chain: n9{r1c6 r3c6}  n8{r3c6 r8c6}  {n8 n4}r8c3 
{n4 n9}r4c3 ==> r1c3 <> 9
nakedsingle ==> r1c3 = 7
hiddenpairsinrow r2 {n6 n7} {c4 c5} ==> r2c4 <>
2
hiddenpairsincolumn {n2 n8}c4{r3 r9} ==> r9c4 <>
5
number 5: r9 interaction with b9 ==> r8c7 <> 5 ,
r7c9 <> 5
naked and hidden singles ==> r7c9 = 1, r9c1 = 1, r9c7 =
7, r9c8 = 5, r3c7 = 5
number 2: r9 interaction with b8 ==> r8c5 <> 2
nakedpairsinblock {n5 n6}{r7c4 r8c5} ==> r8c6 <>
5
hiddenpairsinblock {n5 n7}{r7c1 r8c1} ==> r8c1
<> 8
xywing {n2 n4}r6c9  {n4 n9}r5c8  {n9 n2}r3c8 ==> r2c9
<> 2
(45 NS)
427359618
895671234
316248597
274935186
638712945
951486372
742593861
589167423
163824759
Still more complex examples (with still longer chains) are
available in the whips page. But
remember that such puzzles are extremely rare.
A6) RESOLUTION
TECHNIQUES ASSOCIATED WITH THE NRC(Z)(T) RESOLUTION
RULES
XY(Z)(T) COLOURING
With the nrc(z)(t)chain resolution rules one can associate
resolution techniques (for this distinction, see the resolution rule page).
The first obvious technique consists of drawing arrows from
each candidate to the next one in the underlying 3D chain.
The second technique is based on colouring. Inspired by
xytchains, John Mac Leod has devised an xytcolouring
scheme, which I reformulated as follows:
"Build the chain from first to last candidate, starting with
the first two. Colour in blue the even candidates
(corresponding to sources of nrclinks). Then:
You still build the chain from head to tail, starting with
the same two cells as above. Colour in blue their right
linking candidates. Then:
 when looking for the next cell, search among those that
are linked to the last and contain its right linking
candidate, forgetting the presence as an extra candidate
(but not as a potential left linking candidate) of any
candidate that is nrclinked to the same number already
coloured in blue,
 colour in blue the right linking candidate of the cell you
have just added to the chain."
This colouring scheme can easily be adapted to nrc(z)(t)
chains.
NRC(Z)(T)TAGGING
There are resolution rules, which are mathematical theorems
in the "conditionaction" form; these theorems guarantee
that asserting a value or (more often) deleting of a
candidate, is legitimate. As such, resolution rules are
invaluable: without them (or any other form of formal
theorem that might appear some day in their stead), Sudoku
can only be ad hoc reasoning; as I already said also, but it
is useful to repeat it, FOL is the ultimate scientifc form
of this rules, but most of the time, using the auxiliary
predicates that I have already be proven to be writtable as
FOL formulζ, a non ambiguous English formulation guarantees
that they can be expressed as resolution rules. There is
another reason why resolution rules are invaluable: only
precise formulations of such rules allow to prove
subsumption relationships between different rules;
And there are resolution techniques associated with such
rules, whose purpose is to answer the practical question:
how do we apply the rules on a real grid, i.e. how do we
find the patterns (defining the condition part of a rule) on
a real grid.
(There may also be resolution techniques that cannot be
associated with a resolution rule, such as T&E or
tabling, but I'm not considering them here).
As nrcchains are "basic" AICs or "basic" NLs (viewed in a
different perspective), I'll skip this case.
Let me consider the case of the nrcz, nrct and nrczt chains.
Notice that the first methods defined below are the
straightforward transposition of the methods already
introduced for xy(z)t chains and are also no more than an
expansion of a short section in the introductory post. But
nrc(z)(t) tagging is different.
Remember that I defined "nrcconjugate" (or "nrcbivalue",
as you prefer  in 3D space these concepts are equivalent)
as ordinary bivalue OR odinary bilocation.
Remember that an nrc(z)(t) chain is first a particular
sequence of 2n candidates and that it can also be considered
as a sequence of n cells. As these chains are 3D
generalisations of xychains, odd candidates are named
leftlinking candidates, even candidates are named
rightlinking candidates.
nrc(z)t chains can be found by using two different methods,
which both build the chain from first to last candidate and
both start with two candidates that are linked by an
nrcbivalue link. Let's call these two candidates as the
seed of the chain. In either method, the chain is
progressively extended to the right, in steps that add two
candidates. Suppose we already have an nrc(z)t chain on
2(n1) candidates and let's try to extend it with two more
candidates.
For simplicity, in case we deal with an nrczt chain, suppose
a target candidate TC has been chosen.
First resolution technique:
simple arrows
Initialisation:
 initialise the procedure by drawing a red arrow between
the first and second candidates;
Next steps:
 find a candidate that is nrclinked to candidate 2(n1),
it is the new leftlinking candidate;
 draw a blue arrow from candidate 2(n1) to this new
candidate;
 find a candidate that is nrcconjugate with the previous
one modulo any previous rightlinking (i.e. even) candidate
in the chain in case the textension is used and modulo TC
in case the zextension is used); it is the new
rightlinking candidate; the fact that this candidate is OK
is checked on the fly, noting that the previous right
linking candidates are the arrival points of the red arrows;
 draw a red arrow from candidate 2(n1)+1 to this new
candidate.
(in folk language, red arrows support "strong inferences"
and blue arrows support "weak" ones).
Second resolution
technique: nrc(z)(t) colouring
(This method was inspired by the xytcolouring algorithm
first defined by John MacLeod to spot the xytchains, and
corrected by me. See above).
Initialisation:
In case the zextension is used, the algorithm must be
initialised by colouring in blue any candidate that is
nrclinked to the target. In case the textension is used,
the algorithm must be initialised by colouring in blue any
candidate that is nrclinked to the second candidate. These
two colouring processes must be combined for nrcztchains.
The extension step is:
Next steps:
 find a candidate that is nrclinked to candidate 2(n1),
it is the new leftlinking candidate; notice that colouring
MUST NOT BE TAKEN INTO ACCOUNT HERE (that was the bug in
John's algorithm);
 draw an arrow from candidate 2(n1) to this new candidate;
 find a candidate that is nrcconjugate with the previous
one modulo any candidate already coloured in blue (i.e.
ignore any blue candidate); it is the new rightlinking
candidate;
 draw an arrow from candidate 2(n1)+1 to this new
candidate;
 colour in blue any candidate that is nrclinked to this
new candidate.
Notice that, in either of these techniques, no value is
tentatively asserted and no candidate is tentatively
eliminated (i.e. none of these techniques introduces
anything that could reasonably be called T&E).
For either technique, after each such step,
 if the zextension is used, eliminate TC if it linked to
both first and current last candidates; (things could be
made a little more general, but this is simpler for a
beginner);
 if the zextension is not used, eliminate any candidate
that is nrclinked to both first and current last
candidates.
What happens if?
 what happens if there is not target (or if the predefined
target, in case the zexetension is used)? Answer: nothing
happens. You may continue extending your chain. BTW; if an
elimination is done, you may also continue extending your
chain (except if the zextension is used: if TC is
eliminated, there's no reason for wanting to eliminate it
again;)
 waht happens if, at some point, the extension step cannot
be done? First, this will occur mainly when looking for
right linking candidates  but that's a secondary matter. At
the levl of the values and the candidates present on the
grid, NOTHING will happen. As for ANY type of chain, you'll
just have to find a better one. How can this be done? The
answer is very standard: go one step backwards in the chain
and try another extension. Here the two methods behave very
differently.
For the first method, you just have to erase the last arrow.
For the second method, you must erase all the colouring (and
all the arrows) and restart from nought. This is a
debilitating point for nrc(z)(t)colouring.
Another technique for
spotting nrc(z)(t)chains: nrc(z)(t) tagging
Can nrc(z)(t) colouring be saved? Answer: yes, by nrc(z)(t)
tagging.
Choose a sequence of letters.
Follow the same procedure as for nrc(z)(t) colouring, but,
instead of colouring the candidates, tagg them with letters;
a candidate needs be tagged with only one letter (if it is
already tagged, don't tagg it again). Of course, in any new
step of the technique described above for colouring, the
next letter in the sequence must be used.
When you have to "backtrack" to the previous step, just
erase the instances of the last letter used.
A7) TWO EXAMPLES OF VERY LONG NRCZT CHAINS AND LASSOS
An nrcztchain of length 25
The classification results in my previous post show that
long chains are very rarely useful.
But I've also been looking for cases for which they would
be.
Until now, the longest nrcztchain I had found in the
Sudogen0 collection had length 13 (in puzzle Sudogen0707, a
very hard one). In Ruud's top 10000, I had found one of
length 17. As SudoRules had chains programmed for lengths
<= 20 (and, on any puzzle, it can check that longer
chains would be useless), I didn't care for increasing this
maximal length.
Nevertheless (in the little time I currently have for
Sudoku), I still tried to find longer nrcztchains (or
lassos).
I was naturally led to try the hardest puzzles and I came
upon the following monster, which rang the bell in SudoRules
indicating that longer chains might be useful for it. I
therefore extended the maximal length to 30.
The puzzle is the following  our friend EasterMonster, with
the additional value r4c8=7 (randomly chosen among the non
nrczt backdoors):
1.......2
.9.4...5.
..6...7..
.5.9.3.7.
....7....
...85..4.
7.....6..
.3...9.8.
..2.....1
The partial resolution path is:
hiddensingleinacolumn ==> r8c9 = 7
nrczt4chain n2{r7c8 r8c7}  n2{r4c7 r4c1}  n2{r6c2 r6c6} 
n2{r2c6 r2c5} ==> r7c5 <> 2
nrczt25chain {n8 n6}r4c9  n6{r5c8 r1c8}  {n6 n3}r2c9 
{n3 n9}r6c9  {n9 n5}r5c9  {n5 n4}r7c9  n4{r3c9 r1c7} 
n9{r1c7 r1c5}  n9{r3c5 r3c8}  n9{r7c8 r7c3}  n9{r9c1
r9c7}  n5{r9c7 r8c7}  n5{r8c3 r1c3}  n3{r1c3 r1c4} 
n3{r3c5 r3c1}  n4{r3c1 r3c2}  n2{r3c2 r2c1}  {n2 n6}r6c1
 {n6 n4}r8c1  {n4 n1}r8c3  {n1 n8}r7c2  n8{r1c2 r2c3} 
{n8 n4}r4c3  n4{r4c5 r9c5}  n8{r9c5 r3c5} ==> r3c9
<> 8
Although the puzzle is not solved, this example is
interesting for several reasons:
 an nrczt25chain appears immediately after an nrczt4, with
nothing of moderate complexity in between;
 after this, nothing else applies  and there's no
possibility for a longer nrcztchain to appear;
 the computation time needed for finding this monster chain
is much shorter than that for some much shorter chains in
other examples. I think the reason is there are not many
possibilities for building each step in the chain, because
when the elimination allowed by this chain is done, the
longest remaining partial chain has length 9. This indicates
how hard it may be to define a complexity measure for
chains.
An nrcztlasso of length 28
In a previous post, I described an nrcztchain of length 25.
Here is now an nrcztlasso of length 28.
It is found in puzzle #3 in the magictour/top1465
collection.
I think this example is interesting for the same reasons as
the previous one:
 an nrczt28lasso appears immediately after an
nrczt11chain and an nrczt6lasso, with nothing of moderate
length in between;
 after this, nothing else (in my set of rules) applies 
and there's no possibility for a longer nrcztchain to
appear;
 the computation time needed for finding this monster chain
is much shorter than that for some much shorter chains (of
length only 6 or 7) in other examples.
In particular, this confirms what was already hinted at in
the previous example: complexities of chains are not related
to their lengths in a systematic way but they largely depend
on the particularities of the puzzles. This makes somewhat
hopeless any effort to define an priori complexity measure
for chains based on the length.
The partial resolution path is:
(solventhgridfromtextfile (strcat ?*GridsDir*
"Magictour/magictourtop1465.txt") 3)
***** SudoRules version 13 *****
708000300000601000500000000040000026300080000000100090090200004000070500000000000
hiddensingleinablock ==> r6c9 = 3
row r2 interactionwithblock b3 ==> r3c9 <> 8,
r3c8 <> 8, r3c7 <> 8, r3c9 <> 7, r3c8
<> 7, r3c7 <> 7
block b6 interactionwithcolumn c7 ==> r9c7 <> 8,
r7c7 <> 8, r2c7 <> 8
block b6 interactionwithrow r5 ==> r5c6 <> 5,
r5c4 <> 5, r5c3 <> 5, r5c2 <> 5
hiddenpairsinarow {n7 n8}r3{c4 c6} ==> r3c6 <>
9, r3c6 <> 4, r3c6 <> 3, r3c6 <> 2, r3c4
<> 9, r3c4 <> 4, r3c4 <> 3
block b2 interactionwithcolumn c5 ==> r9c5 <> 3,
r7c5 <> 3, r4c5 <> 3
nrczt4chain n9{r2c1 r4c1}  {n9 n5}r4c5  n5{r2c5 r2c8} 
n8{r2c8 r2c9} ==> r2c9 <> 9
nrczt4chain n6{r1c2 r3c3}  n6{r5c3 r5c6}  n6{r6c5 r7c5} 
n6{r7c7 r9c7} ==> r9c2 <> 6
nrczt6lrlasso n7{r9c3 r9c2}  n7{r9c9 r2c9}  n8{r2c9
r2c8}  n5{r2c8 r2c5}  {n5 n9}r4c5  n9{r4c1 r4c3} ==>
r5c3 <> 7
nrczt11chain n6{r9c1 r6c1}  n6{r6c5 r9c5}  n1{r9c5 r7c5}
 {n1 n8}r7c1  n8{r4c1 r6c2}  n5{r6c2 r9c2}  n7{r9c2
r5c2}  n7{r9c2 r9c3}  n7{r9c9 r2c9}  n7{r2c8 r7c8}  {n7
n6}r7c7 ==> r7c3 <> 6
nrczt28lrlasso n5{r6c3 r4c3}  n5{r7c3 r7c5}  n1{r7c5
r9c5}  n6{r9c5 r6c5}  n2{r6c5 r5c6}  n4{r5c6 r5c4} 
n4{r6c6 r6c7}  n8{r6c7 r4c7}  n1{r4c7 r4c1}  n9{r4c1
r2c1}  n9{r3c3 r5c3}  n6{r5c3 r5c2}  n6{r1c2 r1c8} 
n6{r3c7 r3c3}  n4{r3c3 r2c3}  n4{r2c8 r3c8}  n4{r3c5
r1c5}  {n4 n9}r1c6  {n9 n5}r1c4n5{r9c4 r9c2}  n7{r9c2
r6c2}  n8{r6c2 r8c2}  {n8 n6}r7c1  n6{r7c7 r9c7} 
n9{r9c7 r3c7}  n2{r3c7 r2c7}  {n2 n1}r3c9  {n1 n2}r1c9
==> r6c6 <> 5
GRID 3 NOT SOLVED. 62 VALUES MISSING.
ANOTHER EXAMPLE OF A HARD
PUZZLE
Here is an interesting example noticed by Caravail, in the
French sudokufactory forum, as one particularly hard among
those with SER = 9.0.
It is #25 in the sudocue top10000
....8....
..4..52..
.9...2..1
.8....5.7
.3..6.81.
7.1..8.9.
6..4...5.
..28..4..
....3....
I'll use it here to illustrate a few points about
nrcztchains and lassos.
***** SudoRules version 13 *****
hiddensingleinablock ==> r1c9 = 5
At this point, the PM is:
c1
c2
c3
c4
c5
c6
c7
c8 c9

r1  123 1267
367  13679
8 134679 
3679 3467
5 
r2  138
167 4
 13679
179 5

2
3678 3689 
r3  358
9 35678 
367
47
2 
367 34678
1 

r4  249
8
69 
1239 1249
1349 
5
2346 7 
r5  2459
3 59
 2579
6
479 
8
1
24 
r6 
7
2456 1 
235
245 8
 36
9
2346 

r7  6
17 3789 
4
1279 179 
1379
5
2389 
r8  1359 157
2 
8
1579 1679 
4
367 369

r9  14589 1457 5789 
125679
3
1679  1679 2678
2689 

interaction column c9 with block b6 for number 4 ==> r4c8
<> 4
nrc2chain n2{r4c8 r9c8}  n2{r9c4 r7c5} ==> r4c5
<> 2
nrczt2chain n5{r8c2 r6c2}  n5{r6c5 r8c5} ==> r8c1
<> 5
At this point, the PM is:
Code:
c1
c2
c3
c4
c5
c6
c7
c8 c9

r1  123 1267
367  13679
8 134679 
3679 3467
5 
r2  138
167 4
 13679
179 5

2
3678 3689 
r3  358
9 35678 
367
47
2 
367 34678
1 

r4  249
8
69 
1239 149
1349 
5 236
7 
r5  2459
3 59
 2579
6
479 
8
1
24 
r6 
7
2456 1 
235
245 8
 36
9
2346 

r7  6
17 3789 
4
1279 179 
1379
5
2389 
r8  139 157
2 
8
1579 1679 
4
367 369

r9  14589 1457 5789 
125679
3
1679  1679 2678
2689 

We now have an example of an nrcztlasso with an additional
zcandidate in its first cell. In full nrcnotation:
nrczt7lrlasso n6{r9 r1 r8*}c6  n3{r1 r4}c6  n4{r4 r5
r1#n6r1c6}c6  n7r5{c6 c4}  n5{r5c4 r6c4 r5c6#n4r5c6} 
n2{r6c4 r4c4 r5c4#n7r5c4}  {n2 n5 n4#n4r5c6}r6c5 ==>
r9c4 <> 6
interaction column c4 with block b2 for number 6 ==> r1c6
<> 6
nrczt7lrlasso n4{r1c8 r1c6}  {n4 n7}r3c5  n7{r3c3 r2c2}
 n7{r8c2 r8c6}  {n7 n9}r5c6  {n9 n1}r7c6  {n1 n7}r7c2
==> r1c8 <> 7
nrczt7lrlasso n3{r1c6 r4c6}  n3{r6c4 r6c9}  n4{r6c9
r5c9}  n4{r5c6 r1c6}  {n4 n6}r1c8  {n6 n7}r3c7  {n7
n4}r3c5 ==> r1c7 <> 3
;;; At this point, the PM is:
c1
c2
c3
c4
c5
c6
c7
c8 c9

r1  123 1267
367  13679
8 134679 
679 346
5 
r2  138
167 4
 13679
179 5

2
3678 3689 
r3  358
9 35678 
367
47
2 
367 34678
1 

r4  249
8
69 
1239 149
1349 
5 236
7 
r5  2459
3 59
 2579
6
479 
8
1
24 
r6 
7
2456 1 
235
245 8
 36
9
2346 

r7  6
17 3789 
4
1279 179 
1379
5
2389 
r8  139 157
2 
8
1579 1679 
4
367 369

r9  14589 1457 5789 
12579
3
1679  1679 2678
2689 

We now have 3 lassos with 3 targets (corresponding to the
eliminations at the end of the line) that can be factored
into a single lasso (a very rare case). Written in the full
nrc notation:
nrczt7rllasso n3{r1 r4}c6  n4{r4 r5 r1*}c6  {n4 n2}r5c9
 {n2 n6 n3#n3r4c6}r4c8  n6r6{c9 c2 c7#n6r4c8}  n2{r6c2
r4c1 r5c1#n2r5c9}  n4r4{c1 c6 c5#n4r5c6} ==> r1c6
<> 9, r1c6 <> 7, r1c6 <> 1
In such a factorisation, the * in cell 2 means that this
additional zcandidate is justified by any of the 3 targets
This is an rllasso and not a chain, becase the last
rightlinking candidate n4r4c6 is nrclinked to the first
rightlinking candidate n3r4c6 and not to the target (to
none of the targets)
;;; nothing special in the sequel:
nrczt5chain n1{r7c6 r4c6}  n3{r4c6 r1c6}  n4{r1c6 r5c6} 
{n4 n2}r5c9  n2{r7c9 r7c5} ==> r7c5 <> 1
nrczt6lrlasso n6{r4c3 r4c8}  {n6 n3}r6c7  {n3 n7}r3c7 
{n7 n3}r3c4  {n3 n4}r1c6  {n4 n7}r3c5 ==> r3c3 <>
6
nrczt6chain n5{r3c3 r3c1}  n8{r3c1 r2c1}  n8{r3c3 r3c8} 
n4{r3c8 r1c8}  {n4 n3}r1c6  n3{r1c3 r3c3} ==> r3c3
<> 7
nrczt7rllasso n1{r1c4 r2c5}  n1{r4c5 r4c6}  n3{r4c6
r1c6}  n4{r1c6 r5c6}  n7{r5c6 r5c4}  n7{r1c4 r3c5} 
n4{r3c5 r1c6} ==> r9c4 <> 1
nrczt8lrlasso n2{r1c2 r6c2}  n6{r6c2 r4c3}  {n6 n3}r1c3
 n3{r1c6 r4c6}  {n3 n5}r6c4  n5{r9c4 r8c5}  n5{r8c2
r9c2}  n4{r9c2 r6c2} ==> r1c2 <> 7
nrczt4chain n7{r1c3 r2c2}  n6{r2c2 r1c2}  {n6 n4}r1c8 
{n4 n3}r1c6 ==> r1c3 <> 3
nrct4chain n8{r7c9 r7c3}  n3{r7c3 r3c3}  n5{r3c3 r3c1} 
n8{r3c1 r3c8} ==> r9c8 <> 8
interaction column c8 with block b3 for number 8 ==> r2c9
<> 8
nrczt5chain {n7 n6}r1c3  n6{r1c2 r6c2}  {n6 n3}r6c7 
n3{r7c7 r7c9}  n8{r7c9 r7c3} ==> r7c3 <> 7
nrczt6chain {n6 n7}r1c3  {n7 n9}r1c7  {n9 n3}r2c9  {n3
n7}r3c7  {n7 n4}r3c5  n4{r3c8 r1c8} ==> r1c8 <> 6
nakedpairsinarow {n3 n4}r1{c6 c8} ==> r1c4 <>
3, r1c1 <> 3
hiddentripletsinablock {n3 n5 n8}{r2c1 r3c1 r3c3} ==>
r2c1 <> 1
nrc4chain n3{r1c6 r1c8}  n4{r1c8 r3c8}  n8{r3c8 r2c8} 
{n8 n3}r2c1 ==> r2c4 <> 3
nrczt6chain n6{r4c8 r4c3}  {n6 n7}r1c3  {n7 n9}r1c7  {n9
n3}r2c9  {n3 n8}r2c1  n8{r3c3 r3c8} ==> r3c8 <> 6
nrczt8lrlasso {n3 n6}r6c7  n6{r3c7 r3c4}  n3{r3c4 r1c6}
 n4{r1c6 r3c5}  n4{r6c5 r6c2}  n6{r6c2 r4c3}  n6{r1c3
r1c2}  n2{r1c2 r6c2} ==> r6c9 <> 3
nrczt4chain n8{r7c9 r7c3}  n3{r7c3 r7c7}  n3{r6c7 r4c8} 
n2{r4c8 r9c8} ==> r7c9 <> 2
hiddensingleinarow ==> r7c5 = 2
nrc3chain n4{r9c2 r6c2}  {n4 n5}r6c5  n5{r8c5 r8c2}
==> r9c2 <> 5
xwingincolumns n5{r6 r8}{c2 c5} ==> r6c4 <> 5
nrct4chain n5{r9c4 r5c4}  {n5 n4}r6c5  {n4 n7}r3c5 
n7{r3c4 r9c4} ==> r9c4 <> 9
nrczt5lrlasso n2{r1c2 r6c2}  {n2 n3}r6c4  {n3 n6}r6c7 
n6{r6c2 r2c2}  n6{r2c9 r3c7} ==> r1c2 <> 1
nrczt6rllasso n5{r8c2 r8c5}  {n5 n4}r6c5  {n4 n7}r3c5 
n7{r2c5 r2c8}  n8{r2c8 r3c8}  n4{r3c8 r3c5} ==> r8c2
<> 7
nrct6chain n5{r6c5 r5c4}  {n5 n7}r9c4  n7{r8c6 r8c8} 
n7{r7c7 r7c2}  n7{r2c2 r2c5}  {n7 n4}r3c5 ==> r6c5
<> 4
naked and hidden singles ==> r6c5 = 5, r9c4 = 5, r8c2 = 5
nrczt5lrlasso n4{r6c9 r6c2}  n2{r6c2 r1c2}  n6{r1c2
r2c2}  n6{r6c2 r6c7}  n6{r3c7 r2c9} ==> r6c9 <> 2
nrc3chain n2{r5c9 r4c8}  n3{r4c8 r6c7}  {n3 n2}r6c4
==> r5c4 <> 2
nrczt5lrlasso n2{r4c4 r6c4}  n3{r6c4 r4c6}  n1{r4c6
r4c5}  n4{r4c5 r5c6}  {n4 n3}r1c6 ==> r4c4 <> 9
nrczt6lrlasso n1{r8c6 r8c1}  n3{r8c1 r7c3}  n8{r7c3
r7c9}  n9{r7c9 r7c7}  n9{r1c7 r1c4}  n1{r1c4 r1c1} ==>
r7c6 <> 1
nrc5chain n1{r7c7 r7c2}  n1{r2c2 r1c1}  n2{r1c1 r1c2} 
n2{r6c2 r6c4}  n3{r6c4 r6c7} ==> r7c7 <> 3
hiddenpairsinarow {n3 n8}r7{c3 c9} ==> r7c9 <>
9, r7c3 <> 9
nrct7chain n4{r9c2 r6c2}  n4{r6c9 r5c9}  n2{r5c9 r9c9} 
n2{r9c8 r4c8}  {n2 n9}r4c1  n9{r5c3 r9c3}  n8{r9c3 r9c1}
==> r9c1 <> 4
naked and hidden singles ==> r9c2 = 4, r6c9 = 4, r5c9 =
2, r9c8 = 2
nakedpairsinacolumn {n2 n6}{r1 r6}c2 ==> r2c2
<> 6
interaction block b1 with row r1 for number 6 ==> r1c7
<> 6, r1c4 <> 6
nrc4chain {n9 n6}r4c3  {n6 n7}r1c3  {n7 n9}r1c7  n9{r7c7
r7c6} ==> r4c6 <> 9
nrc4chain n9{r1c7 r1c4}  n1{r1c4 r1c1}  n1{r2c2 r7c2} 
n1{r7c7 r9c7} ==> r9c7 <> 9
nrct4chain n6{r4c8 r6c7}  n3{r6c7 r3c7}  n3{r2c8 r2c1} 
n8{r2c1 r2c8} ==> r2c8 <> 6
hxycn4chain {r9 r1}c3n7  {r1 r4}c3n6  {r4 r8}c8n6  {r8
r9}c6n6 ==> r9c6 <> 7
nrc3chain n7{r9c7 r9c3}  {n7 n1}r7c2  n1{r7c7 r9c7}
==> r9c7 <> 6
hiddenpairsinacolumn {n3 n6}{r3 r6}c7 ==> r3c7
<> 7
nrc5chain n6{r9c6 r8c6}  n6{r8c8 r4c8}  n6{r4c3 r1c3} 
n7{r1c3 r9c3}  {n7 n1}r9c7 ==> r9c6 <> 1
interaction block b8 with row r8 for number 1 ==> r8c1
<> 1
nrc5chain {n9 n3}r8c1  n3{r7c3 r3c3}  {n3 n6}r3c7 
n6{r6c7 r4c8}  {n6 n9}r4c3 ==> r9c3 <> 9
interaction column c3 with block b4 for number 9 ==> r5c1
<> 9, r4c1 <> 9
nrc4chain n7{r2c2 r1c3}  n6{r1c3 r4c3}  n9{r4c3 r5c3} 
{n9 n7}r5c4 ==> r2c4 <> 7
nrc5chain n1{r2c2 r1c1}  n2{r1c1 r1c2}  n6{r1c2 r6c2} 
n6{r6c7 r3c7}  n6{r3c4 r2c4} ==> r2c4 <> 1
nrc3chain n1{r4c4 r1c4}  {n1 n2}r1c1  n2{r4c1 r4c4}
==> r4c4 <> 3
xwingincolumns n3{r3 r6}{c4 c7} ==> r3c8 <> 3,
r3c3 <> 3
naked and hidden singles ==> r7c3 = 3, r8c1 = 9, r7c9 = 8
interaction block b8 with column c6 for number 9 ==> r5c6
<> 9
xwingincolumns n3{r3 r6}{c4 c7} ==> r3c1 <> 3
hiddensingles ==> r2c1 = 3, r8c9 = 3, r2c8 = 8
nakedpairsinarow {n4 n7}r3{c5 c8} ==> r3c4 <> 7
nakedpairsinarow {n6 n9}r2{c4 c9} ==> r2c5 <> 9
naked and hidden singles
GRID Puzzles/papyg/Caravail.sdk SOLVED. LEVEL = L8, MOST
COMPLEX RULE = NRCZT8
267183945
314975286
895642371
486291537
539764812
721358694
673429158
952817463
148536729
A8) NRCZTCHAIN RULES
vs THE RULES IN MIKE BARKER'S SOLVER
<To be developed>
Recalling that both sets of rules can solve almost any
minimal random puzzle and about 97% of top 1465, we have:
 an example of a situation (obtained from puzzle #3 ) in
which no nrcztchain can be found but Grouped NLs can,
 an example of a situation (obtained from puzzle #113 ) in
which no Grouped NL [subject to the restrictions on size you
mentionned] can be found but nrcztchains can,
 an example of a situation (obtained from puzzle # 77) in
which none of these can be found.
A9) RESTRICTED FORMS OF NRC(Z)(T) CHAINS
If you consider the most general definition of an
nrcztchain, as given at the top of this page, you will see
that:
 two consecutive candidates are nrclinked,
 candidates can be grouped by pairs inside 2D (rc, rn,
cn or bn) cells,
 each pair consists of a unique leftlinking and a unique
rightlinking candidate,
 in each of these 2D cells, there may be additional (t or
z) candidates.
In the most general definition, these additional candidates
must be nrclinked to a previous rightlinking candidate
(textension) or to the target (zextension).
Now, it makes sense to restrict this definition to the
following: within each such 2D cell, each additional
candidate must be linked, WITHIN the subspace of this cell,
to a previous rightlinking candidate (textension) or to
the target (zextension). Said otherwise:
 if the cell is an rccell, then the link must be an
rclink;
 if it is an rncell, then it must be an rnlink;
 if it is a cncell, then it must be a cnlink;
 and if it is a bncell, then it must be a bnlink.
Thus, we get restricted nrc(z)(t) chains.
What's the point of this restriction?
 first, the Extended Sudoku Board can be used to look for
these chains: each next cell can easily be checked in either
of the four 2D subspaces, with no need for checking
additional candidates that would be justified only by outer
3D links; the only places where you may have to swap from
one subboard to another is between the 2D cells;
 second, there will be fewer restrictednrcztchains than
nrcztchains. This is of course a disadvantage when a puzzle
has few chains. But it may be an advantage for puzzles that
have so many chains that it is hard to find them. Looking
for restricted forms may be a first step.
Of course, nrc(z)(t) chains admit still more restricted
forms, which I defined long ago: their pure 2D versions,
yx(z)(t) and hxy(z)(t).
If you've been using the Extended Sudoku Board for finding
the pure 2D versions, then you can still use it for finding
the restrictednrcztchains. It is therefore a good
transition step.
Finally, how do restrictednrcztchains behave wrt to their
global resolution power? Well, as the full version, they can
solve all the puzzles in the Sudogen0 random collection of
10.000 minimal puzzles  sometimes faster, sometimes slower
because longer chains are needed for the same puzzle.
WARNING: after several optimisations inSudoRules, the memory
overflow probelms have disappeared. Nevertheless, the
restricted form of nrc(z)(t) chains may still be useful for
human players.
An example of how using
restricted forms of nrcztchains can be helpful
Consider the following puzzle
.12...3..
...4...5.
6..3..2..
.....7..4
..3.1.6..
8..5.....
..7..4..2
.2...9...
..6...79.
This is puzzle "Extra252hard", from papyg, here:
http://www.sudokufactory.com/forumsudoku/viewtopic.php?t=836
(I've already mentioned this French forum, where
nrcztchains are used daily)
Its SER is 9.1
If I try to solve it with the most general nrcztchains, I
get a memory overflow.
***** SudoRules version 13 *****
hiddensingles ==> r6c5 = 4, r8c7 = 4, r3c3 = 4, r1c8 = 4
interaction column c8 with block b9 for number 6 ==> r8c9
<> 6
interaction column c4 with block b8 for number 1 ==> r9c6
<> 1
nakedpairsinarow {n1 n9}r6{c3 c7} ==> r6c9 <>
9, r6c9 <> 1, r6c8 <> 1, r6c2 <> 9
nrc2chain n5{r5c9 r4c7}  n5{r4c3 r8c3} ==> r8c9
<> 5
nrc2chain n5{r7c7 r4c7}  n5{r4c3 r8c3} ==> r7c2
<> 5, r7c1 <> 5
xyt4chain {n9 n1}r6c7  {n1 n9}r6c3  {n9 n8}r2c3  {n8
n9}r2c7 ==> r4c7 <> 9
hxytcn4chain {r7 r4}c7n5  {r4 r8}c3n5  {r8 r2}c3n8  {r2
r7}c7n8 ==> r7c7 <> 1
nrc4chain n5{r8c3 r4c3}  n5{r4c7 r5c9}  n9{r5c9 r6c7} 
n1{r6c7 r6c3} ==> r8c3 <> 1
interaction column c3 with block b4 for number 1 ==> r4c1
<> 1
nrct5chain n3{r9c6 r6c6}  {n3 n7}r6c9  {n7 n2}r6c8  {n2
n8}r5c8  {n8 n2}r5c6 ==> r9c6 <> 2
nrct5chain n3{r4c5 r4c8}  {n3 n7}r6c9  {n7 n2}r6c8  {n2
n8}r5c8  {n8 n2}r5c6 ==> r4c5 <> 2
nrct5chain n2{r4c1 r5c1}  n4{r5c1 r5c2}  n7{r5c2 r6c2} 
n6{r6c2 r6c6}  n2{r6c6 r4c4} ==> r4c8 <> 2
nrct6chain n5{r5c9 r4c7}  n5{r4c3 r8c3}  n8{r8c3 r2c3} 
n8{r2c7 r7c7}  n8{r7c2 r9c2}  n4{r9c2 r5c2} ==> r5c2
<> 5
nrct6chain n3{r4c5 r4c8}  {n3 n7}r6c9  {n7 n2}r6c8  {n2
n8}r5c8  {n8 n2}r5c6  {n2 n9}r5c4 ==> r4c5 <> 9
interaction column c5 with block b2 for number 9 ==> r1c4
<> 9
;;; example of a chain whose t or z candidates need nrc
links:
nrczt6chain n8{r2c3 r8c3}  n8{r9c2 r3c2}  n5{r3c2 r1c1} 
n5{r9c1 r9c2}  n5{r9c6 r3c6}  n1{r3c6 r2c6} ==> r2c6
<> 8
nrczt7chain n8{r2c3 r8c3}  n8{r7c2 r3c2}  n5{r3c2 r1c1} 
n5{r8c1 r9c2}  n5{r9c6 r3c6}  n1{r3c6 r2c6}  n2{r2c6
r2c5} ==> r2c5 <> 8
nrczt7lrlasso {n8 n2}r5c6  {n2 n7}r5c8  {n7 n3}r6c9 
{n3 n1}r4c8  n1{r6c7 r2c7}  {n1 n6}r2c6  {n6 n2}r6c6
==> r5c9 <> 8
nrczt8chain n8{r2c3 r8c3}  n8{r9c2 r3c2}  n5{r3c2 r1c1} 
n5{r9c1 r9c2}  n5{r9c6 r3c6}  n1{r3c6 r2c6}  n2{r2c6
r2c5}  n6{r2c5 r2c9} ==> r2c9 <> 8
;;; example of a chain whose t or z candidates need nrc
links:
nrczt8lrlasso n3{r4c5 r4c8}  n3{r6c9 r9c9}  n5{r9c9
r5c9}  n9{r5c9 r6c7}  n1{r6c7 r4c7}  {n1 n8}r2c7 
n8{r3c9 r8c9}  n8{r8c3 r2c3} ==> r8c5 <> 3
nrczt9lrlasso n5{r3c2 r1c1}  n7{r1c1 r5c1}  n7{r5c8
r6c8}  n2{r6c8 r6c6}  n2{r2c6 r2c5}  n7{r2c5 r2c9} 
n6{r2c9 r2c6}  {n6 n8}r1c6  {n8 n2}r5c6 ==> r3c2
<> 7
nrczt9lrlasso {n7 n3}r6c9  {n3 n2}r6c8  {n2 n8}r5c8 
{n8 n2}r5c6  {n2 n6}r6c6  n3{r6c6 r4c5}  {n3 n1}r4c8 
n1{r6c7 r2c7}  {n1 n2}r2c6 ==> r5c9 <> 7
Memory overflow
Now, if Iuse the restricted version of nrcztchains, I get
the solution:
***** SudoRules version 13 *****
hiddensingles ==> r6c5 = 4, r8c7 = 4, r3c3 = 4, r1c8 = 4
interaction column c8 with block b9 for number 6 ==> r8c9
<> 6
interaction column c4 with block b8 for number 1 ==> r9c6
<> 1
nakedpairsinarow {n1 n9}r6{c3 c7} ==> r6c9 <>
9, r6c9 <> 1, r6c8 <> 1, r6c2 <> 9
nrc2chain n5{r5c9 r4c7}  n5{r4c3 r8c3} ==> r8c9
<> 5
nrc2chain n5{r7c7 r4c7}  n5{r4c3 r8c3} ==> r7c2
<> 5, r7c1 <> 5
xyt4chain {n9 n1}r6c7  {n1 n9}r6c3  {n9 n8}r2c3  {n8
n9}r2c7 ==> r4c7 <> 9
hxytcn4chain {r7 r4}c7n5  {r4 r8}c3n5  {r8 r2}c3n8  {r2
r7}c7n8 ==> r7c7 <> 1
nrc4chain n5{r8c3 r4c3}  n5{r4c7 r5c9}  n9{r5c9 r6c7} 
n1{r6c7 r6c3} ==> r8c3 <> 1
interaction column c3 with block b4 for number 1 ==> r4c1
<> 1
nrct5chain n3{r9c6 r6c6}  {n3 n7}r6c9  {n7 n2}r6c8  {n2
n8}r5c8  {n8 n2}r5c6 ==> r9c6 <> 2
nrct5chain n3{r4c5 r4c8}  {n3 n7}r6c9  {n7 n2}r6c8  {n2
n8}r5c8  {n8 n2}r5c6 ==> r4c5 <> 2
nrct5chain n2{r4c1 r5c1}  n4{r5c1 r5c2}  n7{r5c2 r6c2} 
n6{r6c2 r6c6}  n2{r6c6 r6c8} ==> r4c8 <> 2
nrct6chain n5{r5c9 r4c7}  n5{r4c3 r8c3}  n8{r8c3 r2c3} 
n8{r2c7 r7c7}  n8{r7c2 r9c2}  n4{r9c2 r5c2} ==> r5c2
<> 5
nrct6chain n3{r4c5 r4c8}  {n3 n7}r6c9  {n7 n2}r6c8  {n2
n8}r5c8  {n8 n2}r5c6  {n2 n9}r5c4 ==> r4c5 <> 9
interaction column c5 with block b2 for number 9 ==> r1c4
<> 9
;;; same path as above, downto this point
nrczt7chain n8{r2c2 r3c2}  n8{r2c3 r8c3}  n5{r8c3 r4c3} 
n5{r4c2 r9c2}  n5{r8c1 r8c5}  n5{r3c5 r3c6}  n1{r3c6
r2c6} ==> r2c6 <> 8; instead of an nrczt6chain
nrczt7chain n8{r2c2 r3c2}  n5{r3c2 r1c1}  {n5 n6}r1c6 
{n6 n7}r1c4  n7{r8c4 r8c5}  n5{r8c5 r8c3}  n8{r8c3 r2c3}
==> r2c5 <> 8
nrczt7lrlasso {n8 n2}r5c6  {n2 n7}r5c8  {n7 n3}r6c9 
{n3 n1}r4c8  n1{r6c7 r2c7}  {n1 n6}r2c6  {n6 n2}r6c6
==> r5c9 <> 8
nrczt9rllasso n8{r2c2 r3c2}  {n8 n9}r2c3  n9{r6c3 r6c7}
 {n9 n1}r2c7  n1{r2c6 r3c6}  n5{r3c6 r3c5}  n5{r3c2
r1c1}  n5{r8c1 r8c3}  n8{r8c3 r2c3} ==> r2c9 <>
8; instead of an nrczt8chain
;;; same eliminations as above, downto this point
nrczt9lrlasso {n7 n3}r6c9  {n3 n2}r6c8  {n2 n8}r5c8 
{n8 n2}r5c6  {n2 n6}r6c6  n3{r6c6 r4c5}  {n3 n1}r4c8 
n1{r6c7 r2c7}  {n1 n2}r2c6 ==> r5c9 <> 7
;;; new eliminations:
nrczt10lrlasso n3{r9c6 r6c6}  n3{r4c5 r4c8}  {n3 n7}r6c9
 n7{r5c8 r3c8}  {n7 n2}r6c8  {n2 n8}r5c8  {n8 n2}r5c6 
n2{r4c4 r9c4}  n1{r9c4 r9c9}  n1{r7c8 r8c8} ==> r9c1
<> 3
nrczt10lrlasso n7{r6c2 r5c1}  n7{r5c8 r6c8}  n2{r6c8
r6c6}  n2{r2c6 r2c5}  n7{r2c5 r2c9}  n6{r2c9 r2c6} 
n1{r2c6 r3c6}  n5{r3c6 r3c5}  {n5 n8}r1c6  {n8 n2}r5c6
==> r3c2 <> 7
nrct11chain n5{r7c7 r4c7}  n5{r5c9 r5c1}  n4{r5c1 r9c1} 
n4{r9c2 r5c2}  n7{r5c2 r5c8}  n8{r5c8 r4c8}  {n8 n1}r3c8
 n1{r3c6 r2c6}  n2{r2c6 r2c5}  n2{r9c5 r9c4}  n1{r9c4
r9c9} ==> r9c9 <> 5
naked and hidden singles ==> r7c7 = 5, r5c9 = 5, r6c7 =
9, r6c3 = 1
nrczt3chain n8{r1c4 r1c9}  {n8 n1}r2c7  n1{r2c6 r3c6}
==> r3c6 <> 8
nrczt7chain n8{r2c7 r4c7}  n1{r4c7 r2c7}  {n1 n7}r3c8 
{n7 n2}r5c8  n2{r6c8 r6c6}  {n2 n6}r2c6  n6{r2c9 r1c9}
==> r1c9 <> 8
interaction row r1 with block b2 for number 8 ==> r3c5
<> 8
nrczt6lrlasso n3{r9c6 r6c6}  n3{r4c5 r4c8}  n1{r4c8
r4c7}  n8{r4c7 r2c7}  n8{r2c3 r8c3}  n8{r8c9 r3c9} ==>
r9c9 <> 3
nrc2chain n3{r8c9 r6c9}  n3{r6c6 r4c5} ==> r8c5
<> 3
nrct6chain n3{r9c6 r6c6}  n3{r6c9 r8c9}  n3{r7c8 r4c8} 
n1{r4c8 r4c7}  {n1 n8}r2c7  n8{r3c9 r9c9} ==> r9c6
<> 8
nrczt7chain {n1 n8}r9c9  {n8 n3}r8c9  {n3 n5}r8c1 
n5{r1c1 r3c2}  n8{r3c2 r3c8}  {n8 n1}r2c7  n1{r4c7 r4c8}
==> r8c8 <> 1
nrczt7lrlasso n5{r3c5 r3c2}  n5{r3c6 r9c6}  n3{r9c6
r6c6}  n3{r4c5 r4c8}  n1{r4c8 r4c7}  n8{r4c7 r2c7} 
n8{r2c2 r2c3} ==> r1c5 <> 5
nrczt5chain n5{r1c1 r1c6}  n5{r3c5 r3c2}  n5{r9c2 r9c5} 
n2{r9c5 r9c4}  n2{r4c4 r4c1} ==> r4c1 <> 5
nrc3chain n5{r1c1 r3c2}  n5{r4c2 r4c3}  n9{r4c3 r2c3}
==> r1c1 <> 9
nrct4chain {n9 n8}r2c3  {n8 n5}r8c3  n5{r9c1 r1c1}  {n5
n9}r3c2 ==> r2c2 <> 9
nrct4chain {n9 n8}r2c3  {n8 n5}r8c3  n5{r9c1 r1c1}  {n5
n9}r3c2 ==> r2c1 <> 9
nrct6chain n9{r2c3 r4c3}  n9{r4c4 r5c4}  n9{r5c1 r7c1} 
{n9 n2}r4c1  n2{r4c4 r9c4}  n2{r9c5 r2c5} ==> r2c5
<> 9
nrczt6lrlasso n8{r8c3 r2c3}  n8{r2c7 r4c7}  n8{r5c8
r5c6}  n8{r1c6 r1c5}  n9{r1c5 r1c9}  n9{r2c9 r2c3} ==>
r8c4 <> 8
nrct7chain n3{r4c5 r6c6}  {n3 n5}r9c6  n5{r1c6 r1c1} 
n5{r3c2 r4c2}  n5{r4c3 r8c3}  n8{r8c3 r2c3}  n8{r2c7
r4c7} ==> r4c5 <> 8
nrczt7rllasso n3{r4c5 r4c8}  n1{r4c8 r4c7}  n8{r4c7
r5c8}  n8{r4c8 r4c4}  n8{r7c4 r7c2}  n8{r3c2 r3c9} 
n8{r2c7 r4c7} ==> r7c5 <> 3
interaction block b8 with row r9 for number 3 ==> r9c2
<> 3
nrczt7lrlasso {n1 n8}r2c7  {n8 n7}r3c8  {n7 n9}r3c9 
{n9 n5}r3c5  n5{r1c6 r1c1}  n5{r8c1 r8c3}  n8{r8c3 r2c3}
==> r2c9 <> 1
nrc5chain n3{r4c5 r9c5}  {n3 n5}r9c6  {n5 n1}r3c6 
n1{r2c6 r2c7}  n1{r4c7 r4c8} ==> r4c8 <> 3
hiddensingles ==> r4c5 = 3, r9c6 = 3
interaction column c6 with block b2 for number 5 ==> r3c5
<> 5
nakedpairsinablock {n1 n8}{r4c7 r4c8} ==> r5c8
<> 8
interaction row r5 with block b5 for number 8 ==> r4c4
<> 8
nrc4chain {n8 n1}r2c7  n1{r2c6 r3c6}  n5{r3c6 r3c2} 
n9{r3c2 r2c3} ==> r2c3 <> 8
nakedsingles ==> r2c3 = 9, r4c3 = 5, r8c3 = 8
nrc3chain {n7 n5}r1c1  n5{r8c1 r8c5}  n7{r8c5 r8c4}
==> r1c4 <> 7
hiddensingleinacolumn ==> r8c4 = 7
nrc5chain n1{r7c4 r9c4}  n2{r9c4 r9c5}  n2{r2c5 r2c6} 
n1{r2c6 r2c7}  n1{r4c7 r4c8} ==> r7c8 <> 1
interaction block b9 with column c9 for number 1 ==> r3c9
<> 1
nrczt5lrlasso {n8 n1}r9c9  {n1 n3}r8c9  n3{r6c9 r6c8} 
n2{r6c8 r6c6}  n2{r4c4 r5c4} ==> r9c4 <> 8
nrc6chain {n7 n3}r2c1  n3{r2c2 r7c2}  n9{r7c2 r7c1} 
n1{r7c1 r7c4}  {n1 n2}r9c4  n2{r9c5 r2c5} ==> r2c5
<> 7
hiddenpairsinablock {n7 n9}{r1c5 r3c5} ==> r1c5
<> 8
interaction column c5 with block b8 for number 8 ==> r7c4
<> 8
hiddenpairsinablock {n7 n9}{r1c5 r3c5} ==> r1c5
<> 6
nrc4chain {n8 n5}r3c2  {n5 n7}r1c1  {n7 n9}r1c5  n9{r3c5
r3c9} ==> r3c9 <> 8
hiddensingles ==> r9c9 = 8, r7c5 = 8, r8c9 = 1, r6c9 = 3
interaction column c9 with block b3 for number 7 ==> r3c8
<> 7
nakedtripletsinacolumn {n5 n7 n3}{r1 r2 r8}c1 ==>
r9c1 <> 5, r7c1 <> 3, r5c1 <> 7
interaction column c1 with block b1 for number 7 ==> r2c2
<> 7
nrc3chain n6{r2c5 r8c5}  n5{r8c5 r8c1}  n5{r1c1 r1c6}
==> r1c6 <> 6
xy4chain {n6 n7}r2c9  {n7 n3}r2c1  {n3 n5}r8c1  {n5
n6}r8c5 ==> r2c5 <> 6
nakedsingles
GRID papyg/Extra252hardmemoverflow.sdk SOLVED. LEVEL =
L11, MOST COMPLEX RULE = NRCT11
712895346
389426157
654371289
295637814
473918625
861542973
937184562
528769431
146253798
This may seem to be only an implementation problem of
SudoRules, but it is not. As SudoRules searches for shorter
chains before longer ones, memory overflow is directly
related to the number of partial chains one has to consider
before eventually reaching a solution.
This puzzle belongs to the category of puzzles that have
many useless partial chains and for which the difficulty
consists of finding the useful ones. In such cases, using
restricted forms of chains may lead to an easier solution
(but there's no guarantee that it will always be the case).
(In the opposite case of puzzles that have few partial
chains, one could try to use more general chains. But,
usable generalisations of nrcztchains, which are not overly
general, are not yet obvious.)
Note: when I give a solution of a puzzle, I always use the
unrestricted version of nrcztchains, unless otherwise
stated.
Here is another
interesting example of using the restricted version of
nrcztchains.
I've recently fallen upon the following old diagonal pattern
devised by Ruud, at the bottom of this page: http://www.sudoku.com/boards/viewtopic.php?t=4212
Code:
X . .  X . .  X . .
. X .  . X .  . X .
. . X  . . X  . . X
++
X . .  X . .  X . .
. X .  . X .  . X .
. . X  . . X  . . X
++
X . .  X . .  X . .
. X .  . X .  . X .
. . X  . . X  . . X
Ruud also gives the following list of example puzzles:
Code:
000800400070020080006009003000700000030090040009006005800300700040060020003007006
200000100030000050001008002400100900060050080005002007600900800090070030008001000
000300700030020000009001006000100300080040010002005009900700400050080020000003007
100500400060010020008007000300600700010070090009002000600400900050080030003005006
700500000000010030001009005900800000050090070007004002200900400010050060008002003
400100200080040060005009008100000700040020080003007005200400000090080000008003000
800900700090040020002006009100000500020060010007003002300500400040070090000008001
200000800090080010001002007500200600070040030004001002300600700000030080009008005
200400500040060020001002000900500700080010060005009002700100000030090050008006004
200100300000050000006002005300200400090070050007008003800900700030010060001004008
100900300060010000004006005400700200010020030002009008200400900050000080009008001
200100300010030040004007001700800900080090030000003002900500600070060020001004008
400300500090050010002000009900200600060030020007006004600400200080070030000003005
000900500010070080005002006200700400050020090009006008700800900040030010003007004
600900700000060040003000009800300200020050090006008001200800900040020010008004005
000300900040070050005008000300400700060080010004005002200500000050010070006009008
700500000030090020001004007200100500050060090007000003900200100010000050004000008
800700500040080000003004007200300700000090080000000001300500400020060090005001008
800600400030020000002007001600900000040050070009000003100200800080000060007005004
900600500080090040003002006400900700020060050009008000700100300010040020000006000
500900100000010040003008005800400000060080070002005003600000800090000060004007002
100000000030040020005003000700200800040090070003008006200000500000060030006001008
600800200070060040002000001700000900090070060008005000100200300000040020003001005
900100200060000040001007009100300900050080000007009008500200300070040010000000006
400900800030080070000000000500300000020050010009004005700000600080020030002001004
300400600040020080005000009900100200000000050006003000000200400080070030001008005
900400100040010090006000004400600700090020030002008000200900000050030000007001008
100800300030050020004001008700400200040010060005008001000700600080000030002006005
He mentions that puzzles generated according to this pattern
(i.e. clues are allowed only where there is an x) seem to be
harder than average. Notice that, now, they are far from
being among the known hardest. But the pattern is still
interesting.
I'ven't tried them systematically to check Ruud's
conjecture, but #7 is an interesting example for the nrczt
chain rules: it provides an example with lassos of length 14
(the longest chains or lassos I ever used to fully solve a
puzzle). Due to a memory overflow problem with their full
version, the restricted version of nrcztchains (as defined
a few posts above) is used.
Notice how hard it becomes almost from the beginning.
Code:
8 . .  9 . .  7 . .
. 9 .  . 4 .  . 2 .
. . 2  . . 6  . . 9
++
1 . .  . . .  5 . .
. 2 .  . 6 .  . 1 .
. . 7  . . 3  . . 2
++
3 . .  5 . .  4 . .
. 4 .  . 7 .  . 9 .
. . .  . . 8  . . 1
The SER is 9.2
***** SudoRules version 13 *****
800900700090040020002006009100000500020060010007003002300500400040070090000008001
hiddensingles ==> r9c4 = 4, r8c4 = 6, r4c4 = 2, r9c5 = 3
interaction row r9 with block b7 for number 9 ==> r7c3
<> 9
interaction row r7 with block b8 for number 2 ==> r8c6
<> 2
nakedsingle ==> r8c6 = 1
xwinginrows n4{r3 r6}{c1 c8} ==> r5c1 <> 4, r4c8
<> 4, r1c8 <> 4
nrc3chain n9{r6c7 r5c7}  {n9 n5}r5c1  n5{r5c6 r6c5}
==> r6c5 <> 9
nrczt8lrlasso {n1 n8}r6c4  n8{r2c4 r3c5}  {n8 n3}r3c7 
n3{r1c8 r4c8}  n8{r4c8 r7c8}  n7{r7c8 r9c8}  n5{r9c8
r8c9}  n3{r8c9 r8c7} ==> r3c4 <> 1
nrczt9chain n9{r5c7 r6c7}  n9{r6c1 r9c1}  n2{r9c1 r9c7} 
n6{r9c7 r2c7}  n6{r2c1 r6c1}  n4{r6c1 r3c1}  n7{r3c1
r2c1}  n7{r2c6 r4c6}  n4{r4c6 r5c6} ==> r5c6 <> 9
interaction block b5 with row r4 for number 9 ==> r4c3
<> 9
nrczt8chain n9{r9c3 r5c3}  {n9 n5}r5c1  n5{r8c1 r8c9} 
n3{r8c9 r8c7}  {n3 n8}r5c7  {n8 n7}r5c4  n7{r4c6 r2c6} 
n5{r2c6 r2c3} ==> r9c3 <> 5
nrczt13lrlasso n9{r9c3 r5c3}  n9{r6c1 r6c7}  n6{r6c7
r2c7}  n6{r2c1 r6c1}  n4{r6c1 r4c3}  n4{r4c6 r5c6} 
n5{r5c6 r6c5}  n1{r6c5 r6c4}  n1{r2c4 r2c3}  n3{r2c3
r1c3}  n5{r1c3 r8c3}  n5{r8c9 r9c8}  {n5 n3}r1c8 ==>
r9c3 <> 6
nakedsingle ==> r9c3 = 9
nrczt14rllasso n4{r6c8 r3c8}  n4{r3c1 r6c1}  n9{r6c1
r5c1}  n9{r5c7 r6c7}  n6{r6c7 r6c2}  n5{r6c2 r6c5} 
n5{r5c6 r5c3}  {n5 n8}r8c3  {n8 n3}r4c3  n3{r4c8 r1c8} 
n3{r1c2 r3c2}  n5{r3c2 r3c1}  n5{r3c8 r9c8}  n5{r8c9
r8c3} ==> r6c8 <> 8
nrczt8chain n3{r8c7 r8c9}  n5{r8c9 r9c8}  {n5 n6}r1c8 
{n6 n4}r6c8  {n4 n8}r3c8  {n8 n7}r3c4  {n7 n5}r2c6  {n5
n3}r2c9 ==> r3c7 <> 3
nrczt6chain n8{r4c2 r7c2}  n8{r7c8 r3c8}  {n8 n1}r3c7 
n1{r3c2 r1c2}  n1{r1c5 r6c5}  n8{r6c5 r4c5} ==> r4c3
<> 8
nrczt10lrlasso n4{r1c9 r1c3}  n4{r3c1 r3c8}  n3{r3c8
r4c8}  n8{r4c8 r7c8}  n7{r7c8 r9c8}  n5{r9c8 r1c8} 
n6{r1c8 r1c2}  n3{r1c2 r3c2}  n7{r3c2 r7c2}  n1{r7c2
r1c2} ==> r1c9 <> 3
nrczt11lrlasso {n1 n8}r3c7  {n8 n5}r3c5  {n5 n7}r2c6 
n7{r3c4 r3c1}  n4{r3c1 r6c1}  n9{r6c1 r6c7}  {n9 n3}r5c7
 n3{r8c7 r8c9}  n8{r8c9 r8c3}  {n8 n5}r5c3  n5{r5c6
r1c6} ==> r3c2 <> 1
nrczt10lrlasso n4{r1c9 r1c3}  n4{r3c1 r3c8}  {n4 n6}r6c8
 n6{r1c8 r1c2}  n1{r1c2 r2c3}  n3{r2c3 r3c2}  {n3
n8}r4c2  n8{r4c8 r7c8}  {n8 n6}r7c3  n6{r4c3 r4c9} ==>
r1c9 <> 5
nrczt10chain n3{r8c7 r8c9}  n5{r8c9 r2c9}  {n5 n6}r1c8 
{n6 n4}r1c9  {n4 n8}r3c8  {n8 n1}r3c7  {n1 n5}r3c5 
n5{r6c5 r5c6}  n4{r5c6 r5c3}  n3{r5c3 r5c7} ==> r2c7
<> 3
nrczt6chain {n8 n5}r8c3  n5{r8c9 r2c9}  {n5 n7}r2c6  {n7
n6}r2c1  {n6 n1}r2c7  {n1 n8}r3c7 ==> r8c7 <> 8
nrczt8lrlasso n8{r7c8 r8c9}  n5{r8c9 r2c9}  {n5 n7}r2c6
 n7{r3c4 r5c4}  n8{r5c4 r5c7}  {n8 n1}r3c7  {n1 n6}r2c7
 {n6 n5}r2c1 ==> r7c3 <> 8
nrczt9chain n9{r6c7 r6c1}  {n9 n5}r5c1  {n5 n2}r8c1 
n2{r9c1 r9c7}  n6{r9c7 r2c7}  n6{r2c1 r9c1}  {n6 n1}r7c3
 n1{r2c3 r2c4}  {n1 n8}r6c4 ==> r6c7 <> 8
nrczt6lrlasso n8{r8c3 r8c9}  n3{r8c9 r8c7}  {n3 n9}r5c7
 {n9 n5}r5c1  {n5 n6}r6c2  {n6 n9}r6c7 ==> r5c3
<> 8
hiddensingleinacolumn ==> r8c3 = 8
nrczt8chain n8{r2c9 r2c4}  n8{r2c7 r5c7}  {n8 n1}r3c7 
n1{r2c7 r2c3}  n3{r2c3 r2c9}  n3{r5c9 r5c3}  n5{r5c3
r1c3}  n5{r1c8 r3c8} ==> r3c8 <> 8
nrczt6chain n8{r4c8 r7c8}  n7{r7c8 r9c8}  n7{r7c9 r7c2} 
n1{r7c2 r1c2}  n3{r1c2 r3c2}  n3{r1c3 r1c8} ==> r4c8
<> 3
interaction column c8 with block b3 for number 3 ==> r2c9
<> 3
nrct4chain n4{r3c1 r3c8}  n3{r3c8 r1c8}  n5{r1c8 r2c9} 
n5{r8c9 r8c1} ==> r3c1 <> 5
nrczt4chain n3{r2c4 r2c3}  n1{r2c3 r2c7}  {n1 n8}r3c7 
n8{r2c9 r2c4} ==> r2c4 <> 7
nrczt4lrlasso n3{r2c3 r2c4}  n1{r2c4 r2c7}  {n1 n8}r3c7
 n8{r2c7 r2c9} ==> r2c3 <> 6, r2c3 <> 5
nrc2chain n5{r6c5 r5c6}  n5{r5c3 r1c3} ==> r1c5
<> 5
nrc3chain n5{r6c5 r3c5}  {n5 n2}r1c6  {n2 n1}r1c5 ==>
r6c5 <> 1
hiddensingleinablock ==> r6c4 = 1
nrczt3chain n5{r8c1 r8c9}  n5{r2c9 r2c6}  n5{r5c6 r6c5}
==> r6c1 <> 5
hiddenpairsinarow {n5 n8}r6{c2 c5} ==> r6c2 <>
6
nrczt5chain {n6 n1}r7c3  n1{r7c2 r1c2}  {n1 n3}r2c3 
n3{r3c2 r4c2}  n6{r4c2 r7c2} ==> r9c1 <> 6
nrct5chain n9{r5c1 r6c1}  n6{r6c1 r2c1}  n7{r2c1 r2c6} 
n5{r2c6 r2c9}  n5{r8c9 r8c1} ==> r5c1 <> 5
naked and hidden singles ==> r5c1 = 9, r6c7 = 9
nrczt2chain n6{r1c2 r2c1}  n6{r6c1 r6c8} ==> r1c8
<> 6
nrc3chain n6{r9c7 r2c7}  n1{r2c7 r2c3}  {n1 n6}r7c3
==> r9c2 <> 6
interaction row r9 with block b9 for number 6 ==> r7c9
<> 6, r7c8 <> 6
nakedpairsinablock {n7 n8}{r7c8 r7c9} ==> r9c8
<> 7
interaction row r9 with block b7 for number 7 ==> r7c2
<> 7
hiddenpairsinacolumn {n7 n8}{r4 r7}c8 ==> r4c8
<> 6
nrc2chain n6{r2c1 r6c1}  n6{r6c8 r4c9} ==> r2c9
<> 6
nrc3chain n1{r2c3 r2c7}  n6{r2c7 r1c9}  n4{r1c9 r1c3}
==> r1c3 <> 1
nrc3chain n6{r1c9 r2c7}  n1{r2c7 r2c3}  {n1 n6}r7c3
==> r1c3 <> 6
nrc3chain n6{r1c2 r1c9}  n4{r1c9 r3c8}  n3{r3c8 r1c8}
==> r1c2 <> 3
nrc3chain {n3 n5}r8c9  {n5 n6}r9c8  n6{r6c8 r4c9} ==>
r4c9 <> 3
interaction row r4 with block b4 for number 3 ==> r5c3
<> 3
nrc4chain n3{r5c9 r8c9}  n5{r8c9 r2c9}  {n5 n7}r2c6 
n7{r3c4 r5c4} ==> r5c9 <> 7
interaction row r5 with block b5 for number 7 ==> r4c6
<> 7
nrct4chain n7{r5c4 r5c6}  {n7 n5}r2c6  {n5 n8}r2c9 
n8{r3c7 r5c7} ==> r5c4 <> 8
naked and hidden singles ==> r5c4 = 7, r2c6 = 7
interaction column c4 with block b2 for number 8 ==> r3c5
<> 8
interaction row r5 with block , r7c8 = 8, r7c9 = 7
nakedpairsinablock {n4 n6}{r4c9 r6c8} ==> r5c9
<> 4
xwingincolumns n5{r1 r5}{c3 c6} ==> r1c8 <> 5
nakedsingle ==> r1c8 = 3
nakedpairsinacolumn {n4 n5}{r1 r5}c3 ==> r4c3
<> 4
xwingincolumns n5{r1 r5}{c3 c6} ==> r1c2 <> 5
nakedpairsinacolumn {n1 n6}{r1 r7}c2 ==> r4c2
<> 6
xwinginrows n5{r2 r8}{c1 c9} ==> r9c1 <> 5
xy3chain {n6 n4}r1c9  {n4 n5}r1c3  {n5 n6}r2c1 ==>
r2c7 <> 6
hiddensingleinablock ==> r1c9 = 6
nakedsingles
GRID SOLVED. LEVEL = L14, MOST COMPLEX RULE = NRCZT14
814925736
693847125
752316849
136289574
925764318
487153962
361592487
548671293
279438651
NOTE : nrcztchains and lassos have been subsumed under the
concept of nrcztwhips. For further examples of chains and
lassos, see the whips page.
