yzfwsf wrote:denis_berthier wrote:z-chain[5]: c6n5{r5 r3} - r1c5{n5 n2} - r1c9{n2 n8} - b9n8{r7c9 r9c7} - c7n5{r9 .} ==> r5c9 ≠ 5
Your chain symbol will hide the details.
Absolutely correct.
I have the same chain in my solver, which looks very complicated.
The pattern you displayed is essentially the same, but not exactly. You should stick to exact ones if possible.
Cell Forcing Chain: Each candidate in r1c9 true in turn will all lead r5c9<>5
2r1c9 - r1c5 = (2-5)r3c6 = r5c6 - 5r5c9
5r1c9 - 5r5c9
8r1c9 - r7c9 = (8-5)r9c7 = r4c7 - 5r5c9
There are two slight problems with that if you want to compare it with Denis' z-chain fully accurately. First, one of its csp-variables (SIS) is different, so it's not depicting exactly the same pattern (even though it effectively does). Second, it's written as a kraken (verity) instead of a contradiction net (which is what Denis' z-chains are), which of course is just a different perspective for the same thing.
Both are inconsequential differences that shouldn't make any difference to anyone who understands such equivalences, but in this case that can't be assumed, because anything you say can and will be used against you (or at least against me).
Your kraken translates to this triangular matrix (5x5 TM):
- Code: Select all
c6n5| 5r5c6 5r3c6
b2n2| . . . 2r3c6 2r1c5
r1c9| 5r1c9 . . . 2r1c9 8r1c9
b9n8| . . . . . . . . . 8r7c9 8r9c7
c7n5| 5r4c7 . . . . . . . . . 5r9c7
===================================
-5r5c9
The only difference between that and Denis' z-chain is the second SIS (csp-variable) which should be r1c5 instead of b2n2. The exact matrix (5x5 TM) for his z-chain:
- Code: Select all
c6n5| 5r5c6 5r3c6
r1c5| . . . 5r1c5 2r1c5
r1c9| 5r1c9 . . . 2r1c9 8r1c9
b9n8| . . . . . . . . . 8r7c9 8r9c7
c7n5| 5r4c7 . . . . . . . . . 5r9c7
===================================
-5r5c9
There are several perspectives to see and write the logic contained in that TM. Denis' z-chain is one of them, depicting it as a contradiction net (but like you said, hiding essential details making it look simpler than it is). Your kraken-cell is another, if the one csp-variable is changed:
2r1c9 - (2=5)r1c5 - r3c6 = r5c6 - 5r5c9
5r1c9 - 5r5c9
8r1c9 - r7c9 = (8-5)r9c7 = r4c7 - 5r5c9
However, to make it match more closely the logic of the z-chain, it should be written as a contradiction net. Simply flipping it around won't do, though, because that would put the contradiction in the cell r1c9 (which of course works too, but it's not the same):
- Code: Select all
[!]r1c9
||
.- (5)r5c6 = r3c6 - (5=2)r1c5 - (2)r1c9
/ ||
(5)r5c9 -------------------------------- (5)r1c9
\ ||
`- (5)r4c7 = (5-8)r9c7 = r7c9 - (8)r1c9
=> -5r5c9
In the z-chain the contradiction is in the column 5c7. Thus, the exactly equivalent contradiction net is this:
- Code: Select all
.------------------------- (5)r1c9
/ ||
(5)r5c9 - r5c6 = r3c6 - (5=2)r1c5 - (2)r1c9 (5)r[!]c7
\ || ||
\ (8)r1c9 - r7c9 = (8-5)r9c7
\ ||
'-------------------------------------------(5)r4c7
=> -5r5c9
In any case, the TM is the most neutral way to depict the pattern, allowing many different interpretations. Yet no matter how it's read, the result is a net of some kind. It doesn't change anything; calling it a simple chain that is "in essence" equivalent to a basic AIC. That's ridiculous, of course, even in the case of of such a simple z-chain with just one z-candidate. The simplest ways to write it as an AIC require nesting:
(5)r1c9 = [(5)r5c6 = r3c6 - (5=2)r1c5 - (2=8)r1c9 - r7c9 = (8-5)r9c7 = (5)r4c7] => -5 r5c9
or:
(5)r5c6 = r3c6 - (5=2)r1c5 - r1c9 = [(5=8)r1c9 - r7c9 = (8-5)r9c7 = (5)r4c7] => -5 r5c9
That's not trivial logic, and writing it as a z-chain doesn't change that fact in any way. It only hides the complexity by abstracting away the z-candidate (5r1c9).