.
Thanks for your solutions. Both of you start by cleaning the resolution state before identifying an anti-tridagon - which is probably the best thing to do for this puzzle.
I have chosen this puzzle because it has two anti-tridagons with large numbers of guardians at the start and I wanted to see what my newly coded universal "ORk-splitting" rules (
http://forum.enjoysudoku.com/ork-forcing-whips-ork-contrad-whips-and-ork-whips-t40189-8.html) could do with them.
I've kept all the intermediate ORk-relations produced by:
- either
ORk-reduction (due to the elimination of one of the guardians), the concrete implementation of
ORk ultra-persistency;
- or
ORk-splitting (due to the existence of a c-chain between to guardians, proving that they have the same truth value).
In a clean publication, the useless ones should be discarded. Note that this can't be done automatically, because a no-look-ahead solver can't know in advance what will be useful later.
- Code: Select all
hidden-pairs-in-a-column: c2{n1 n5}{r2 r5} ==> r5c2≠8, r5c2≠7, r5c2≠4, r5c2≠3, r2c2≠9, r2c2≠4, r2c2≠3
+----------------------+----------------------+----------------------+
! 13 2 359 ! 4 35678 136789 ! 3789 378 3789 !
! 134 15 7 ! 1389 2358 1389 ! 23489 348 6 !
! 6 349 8 ! 379 237 379 ! 23479 1 5 !
+----------------------+----------------------+----------------------+
! 2378 3789 239 ! 5 378 4 ! 378 6 1 !
! 13478 15 345 ! 3678 9 3678 ! 34578 34578 2 !
! 3478 6 345 ! 378 1 2 ! 34578 9 378 !
+----------------------+----------------------+----------------------+
! 23478 3478 2346 ! 36789 3678 5 ! 1 378 3789 !
! 5 378 36 ! 136789 3678 136789 ! 36789 2 4 !
! 9 378 1 ! 2 4 3678 ! 35678 3578 378 !
+----------------------+----------------------+----------------------+
The first anti-tridagon, with the splitting rules immediately applied twice to it:
- Code: Select all
OR9-anti-tridagon[12] for digits 7, 8 and 3 in blocks:
b5, with cells: r4c5, r5c6, r6c4
b6, with cells: r4c7, r5c8, r6c9
b8, with cells: r8c5, r9c6, r7c4
b9, with cells: r8c7, r9c9, r7c8
with 9 guardians: n6r5c6 n4r5c8 n5r5c8 n6r7c4 n9r7c4 n6r8c5 n6r8c7 n9r8c7 n6r9c6
Trid-OR9-relation between candidates n6r5c6, n4r5c8, n5r5c8, n6r7c4, n9r7c4, n6r8c5, n6r8c7, n9r8c7 and n6r9c6
+ same valence for candidates n6r9c6 and n6r8c7 via c-chain[2]: n6r9c6,n6r9c7,n6r8c7
==> Trid-OR9-relation can be split into two Trid-OR8-relations with respective lists of guardians:
n6r5c6 n4r5c8 n5r5c8 n6r7c4 n9r7c4 n6r8c5 n6r8c7 n9r8c7 and n6r5c6 n4r5c8 n5r5c8 n6r7c4 n9r7c4 n6r8c5 n9r8c7 n6r9c6 .
Trid-OR8-relation between candidates n6r5c6, n4r5c8, n5r5c8, n6r7c4, n9r7c4, n6r8c5, n9r8c7 and n6r9c6
+ same valence for candidates n9r8c7 and n9r7c4 via c-chain[2]: n9r8c7,n9r7c9,n9r7c4
==> Trid-OR8-relation can be split into two Trid-OR7-relations with respective lists of guardians:
n6r5c6 n4r5c8 n5r5c8 n6r7c4 n9r7c4 n6r8c5 n6r9c6 and n6r5c6 n4r5c8 n5r5c8 n6r7c4 n6r8c5 n9r8c7 n6r9c6 .
The second anti-tridagon, where no splitting rules can be applied at this point.
Notice that it will not be used for any elimination, so that I could have completely deleted it, but this is what SudoRules finds.
- Code: Select all
OR12-anti-tridagon[12] for digits 7, 8 and 3 in blocks:
b5, with cells: r4c5, r5c6, r6c4
b6, with cells: r4c7, r5c8, r6c9
b8, with cells: r7c5, r9c6, r8c4
b9, with cells: r7c9, r9c8, r8c7
with 12 guardians: n6r5c6 n4r5c8 n5r5c8 n6r7c5 n9r7c9 n1r8c4 n6r8c4 n9r8c4 n6r8c7 n9r8c7 n6r9c6 n5r9c8
Now, a few easy "cleaning" steps:
- Code: Select all
biv-chain[3]: r1c1{n3 n1} - r2c2{n1 n5} - b2n5{r2c5 r1c5} ==> r1c5≠3
biv-chain[4]: r1c1{n3 n1} - r2c2{n1 n5} - b2n5{r2c5 r1c5} - b2n6{r1c5 r1c6} ==> r1c6≠3
biv-chain[4]: r1n1{c1 c6} - b2n6{r1c6 r1c5} - b2n5{r1c5 r2c5} - r2c2{n5 n1} ==> r2c1≠1
biv-chain[3]: r2c1{n3 n4} - r3n4{c2 c7} - b3n2{r3c7 r2c7} ==> r2c7≠3
whip[3]: r3n4{c7 c2} - r2c1{n4 n3} - b2n3{r2c4 .} ==> r3c7≠3
biv-chain[4]: r1n1{c6 c1} - r2c2{n1 n5} - b2n5{r2c5 r1c5} - b2n6{r1c5 r1c6} ==> r1c6≠7, r1c6≠8, r1c6≠9
biv-chain[3]: r8n1{c4 c6} - r1c6{n1 n6} - b5n6{r5c6 r5c4} ==> r8c4≠6
+----------------------+----------------------+----------------------+
! 13 2 359 ! 4 5678 16 ! 3789 378 3789 !
! 34 15 7 ! 1389 2358 1389 ! 2489 348 6 !
! 6 349 8 ! 379 237 379 ! 2479 1 5 !
+----------------------+----------------------+----------------------+
! 2378 3789 239 ! 5 378 4 ! 378 6 1 !
! 13478 15 345 ! 3678 9 3678 ! 34578 34578 2 !
! 3478 6 345 ! 378 1 2 ! 34578 9 378 !
+----------------------+----------------------+----------------------+
! 23478 3478 2346 ! 36789 3678 5 ! 1 378 3789 !
! 5 378 36 ! 13789 3678 136789 ! 36789 2 4 !
! 9 378 1 ! 2 4 3678 ! 35678 3578 378 !
+----------------------+----------------------+----------------------+
Our OR12 relation can now be reduced (though this will be useless:
- Code: Select all
At least one candidate of a previous Trid-OR12-relation has just been eliminated.
There remains a Trid-OR11-relation between candidates: n6r5c6 n4r5c8 n5r5c8 n6r7c5 n9r7c9 n1r8c4 n9r8c4 n6r8c7 n9r8c7 n6r9c6 n5r9c8
One of the two OR7 relations found before (from splitting) can now also be split:
- Code: Select all
Trid-OR7-relation between candidates n6r5c6, n4r5c8, n5r5c8, n6r7c4, n9r7c4, n6r8c5 and n6r9c6
+ same valence for candidates n6r7c4 and n6r5c6 via c-chain[2]: n6r7c4,n6r5c4,n6r5c6
==> Trid-OR7-relation can be split into two Trid-OR6-relations with respective lists of guardians:
n6r5c6 n4r5c8 n5r5c8 n9r7c4 n6r8c5 n6r9c6 and n4r5c8 n5r5c8 n6r7c4 n9r7c4 n6r8c5 n6r9c6 .
Easy cleaning again:
- Code: Select all
z-chain[3]: r1n8{c9 c5} - c5n5{r1 r2} - r2n2{c5 .} ==> r2c7≠8
biv-chain[4]: r1n5{c5 c3} - r2c2{n5 n1} - r1n1{c1 c6} - b2n6{r1c6 r1c5} ==> r1c5≠7, r1c5≠8
whip[1]: r1n8{c9 .} ==> r2c8≠8
whip[1]: r1n7{c9 .} ==> r3c7≠7
naked-pairs-in-a-row: r2{c1 c8}{n3 n4} ==> r2c7≠4, r2c6≠3, r2c5≠3, r2c4≠3
whip[1]: b2n3{r3c6 .} ==> r3c2≠3
z-chain[3]: b1n3{r2c1 r1c3} - c3n9{r1 r4} - r4n2{c3 .} ==> r4c1≠3
z-chain[3]: c2n3{r9 r4} - r4n9{c2 c3} - c3n2{r4 .} ==> r7c3≠3
biv-chain[4]: r6n5{c7 c3} - r1n5{c3 c5} - b2n6{r1c5 r1c6} - r9n6{c6 c7} ==> r9c7≠5
hidden-single-in-a-block ==> r9c8=5
+----------------------+----------------------+----------------------+
! 13 2 359 ! 4 56 16 ! 3789 378 3789 !
! 34 15 7 ! 189 258 189 ! 29 34 6 !
! 6 49 8 ! 379 237 379 ! 249 1 5 !
+----------------------+----------------------+----------------------+
! 278 3789 239 ! 5 378 4 ! 378 6 1 !
! 13478 15 345 ! 3678 9 3678 ! 34578 3478 2 !
! 3478 6 345 ! 378 1 2 ! 34578 9 378 !
+----------------------+----------------------+----------------------+
! 23478 3478 246 ! 36789 3678 5 ! 1 378 3789 !
! 5 378 36 ! 13789 3678 136789 ! 36789 2 4 !
! 9 378 1 ! 2 4 3678 ! 3678 5 378 !
+----------------------+----------------------+----------------------+
With the eliminations implied by the last Single come new reductions for the previously found ORk relations:
- Code: Select all
At least one candidate of a previous Trid-OR6-relation has just been eliminated.
There remains a Trid-OR5-relation between candidates: n6r5c6 n4r5c8 n9r7c4 n6r8c5 n6r9c6
At least one candidate of a previous Trid-OR6-relation has just been eliminated.
There remains a Trid-OR5-relation between candidates: n4r5c8 n6r7c4 n9r7c4 n6r8c5 n6r9c6
At least one candidate of a previous Trid-OR7-relation has just been eliminated.
There remains a Trid-OR6-relation between candidates: n6r5c6 n4r5c8 n6r7c4 n6r8c5 n9r8c7 n6r9c6
At least one candidate of a previous Trid-OR8-relation has just been eliminated.
There remains a Trid-OR7-relation between candidates: n6r5c6 n4r5c8 n6r7c4 n9r7c4 n6r8c5 n6r8c7 n9r8c7
Normal resolution again, with a new cascade of reductions due to candidate eliminations after the Single:
- Code: Select all
z-chain[4]: c2n3{r9 r4} - r4n9{c2 c3} - c3n2{r4 r7} - c3n6{r7 .} ==> r8c3≠3
naked-single ==> r8c3=6
+----------------------+----------------------+----------------------+
! 13 2 359 ! 4 56 16 ! 3789 378 3789 !
! 34 15 7 ! 189 258 189 ! 29 34 6 !
! 6 49 8 ! 379 237 379 ! 249 1 5 !
+----------------------+----------------------+----------------------+
! 278 3789 239 ! 5 378 4 ! 378 6 1 !
! 13478 15 345 ! 3678 9 3678 ! 34578 3478 2 !
! 3478 6 345 ! 378 1 2 ! 34578 9 378 !
+----------------------+----------------------+----------------------+
! 23478 3478 246 ! 36789 3678 5 ! 1 378 3789 !
! 5 378 6 ! 13789 3678 136789 ! 3789 2 4 !
! 9 378 1 ! 2 4 3678 ! 3678 5 378 !
+----------------------+----------------------+----------------------+
At least one candidate of a previous Trid-OR7-relation has just been eliminated.
There remains a Trid-OR6-relation between candidates: n6r5c6 n4r5c8 n6r7c4 n9r7c4 n6r8c5 n9r8c7
At least one candidate of a previous Trid-OR5-relation has just been eliminated.
There remains a Trid-OR4-relation between candidates: n6r5c6 n4r5c8 n9r7c4 n6r9c6
At least one candidate of a previous Trid-OR5-relation has just been eliminated.
There remains a Trid-OR4-relation between candidates: n4r5c8 n6r7c4 n9r7c4 n6r9c6
At least one candidate of a previous Trid-OR6-relation has just been eliminated.
There remains a Trid-OR5-relation between candidates: n6r5c6 n4r5c8 n6r7c4 n9r8c7 n6r9c6
At least one candidate of a previous Trid-OR6-relation has just been eliminated.
There remains a Trid-OR5-relation between candidates: n6r5c6 n4r5c8 n6r7c4 n9r7c4 n9r8c7
Rinse and repeat;
- Code: Select all
hidden-single-in-a-block ==> r9c7=6
+-------------------+-------------------+-------------------+
! 13 2 359 ! 4 56 16 ! 3789 378 3789 !
! 34 15 7 ! 189 258 189 ! 29 34 6 !
! 6 49 8 ! 379 237 379 ! 249 1 5 !
+-------------------+-------------------+-------------------+
! 278 3789 239 ! 5 378 4 ! 378 6 1 !
! 13478 15 345 ! 3678 9 3678 ! 34578 3478 2 !
! 3478 6 345 ! 378 1 2 ! 34578 9 378 !
+-------------------+-------------------+-------------------+
! 23478 3478 24 ! 36789 3678 5 ! 1 378 3789 !
! 5 378 6 ! 13789 378 13789 ! 3789 2 4 !
! 9 378 1 ! 2 4 378 ! 6 5 378 !
+-------------------+-------------------+-------------------+
At least one candidate of a previous Trid-OR4-relation has just been eliminated.
There remains a Trid-OR3-relation between candidates: n6r5c6 n4r5c8 n9r7c4
At least one candidate of a previous Trid-OR4-relation has just been eliminated.
There remains a Trid-OR3-relation between candidates: n4r5c8 n6r7c4 n9r7c4
At least one candidate of a previous Trid-OR5-relation has just been eliminated.
There remains a Trid-OR4-relation between candidates: n6r5c6 n4r5c8 n6r7c4 n9r8c7
Notice that until now, not much has been done in terms of resolution proper. Only easy resolution rules and their almost obvious consequences on ORk-relations have been applied.
Here comes the ORk-chains part, using only the first of the two OR3 relations:
z-chain[5]: b6n5{r6c7 r5c7} - b6n4{r5c7 r5c8} - r2n4{c8 c1} - r6n4{c1 c3} - r6n5{c3 .} ==> r6c7≠8, r6c7≠7, r6c7≠3<Fact-48574>
whip[6]: c4n6{r5 r7} - c5n6{r7 r1} - r1n5{c5 c3} - r5c3{n5 n4} - r6n4{c3 c7} - r6n5{c7 .} ==> r5c4≠3
Trid-OR3-whip[6]: r3c2{n9 n4} - r2c1{n4 n3} - r2c8{n3 n4} - OR3{{n4r5c8 n9r7c4 | n6r5c6}} - r1c6{n6 n1} - r1c1{n1 .} ==> r3c4≠9
Trid-OR3-whip[6]: b1n4{r2c1 r3c2} - b1n9{r3c2 r1c3} - c9n9{r1 r7} - OR3{{n9r7c4 n4r5c8 | n6r5c6}} - r1c6{n6 n1} - c1n1{r1 .} ==> r5c1≠4
Trid-OR3-whip[6]: r3n4{c7 c2} - b1n9{r3c2 r1c3} - c9n9{r1 r7} - OR3{{n9r7c4 n4r5c8 | n6r5c6}} - r1n6{c6 c5} - r1n5{c5 .} ==> r5c7≠4finned-x-wing-in-rows: n4{r2 r5}{c8 c1} ==> r6c1≠4
whip[1]: b4n4{r6c3 .} ==> r7c3≠4
singles ==> r7c3=2, r4c1=2
hidden-pairs-in-a-row: r6{n4 n5}{c3 c7} ==> r6c3≠3
Trid-OR3-whip[6]: r3n4{c7 c2} - b1n9{r3c2 r1c3} - c9n9{r1 r7} - OR3{{n9r7c4 n4r5c8 | n6r5c6}} - r1n6{c6 c5} - r1n5{c5 .} ==> r6c7≠4The end is routine solving in W6:
- Code: Select all
singles ==> r6c7=5, r6c3=4, r5c8=4, r2c8=3, r2c1=4, r3c2=9, r4c3=9, r7c2=4, r3c7=4, r2c7=2, r3c5=2
z-chain[5]: c5n6{r7 r1} - r1c6{n6 n1} - r1c1{n1 n3} - r7c1{n3 n7} - r7c8{n7 .} ==> r7c5≠8
z-chain[5]: c5n6{r7 r1} - r1c6{n6 n1} - r1c1{n1 n3} - r7c1{n3 n8} - r7c8{n8 .} ==> r7c5≠7
z-chain[4]: r7c5{n3 n6} - r1n6{c5 c6} - c6n1{r1 r2} - c6n9{r2 .} ==> r8c6≠3
z-chain[5]: r3c4{n7 n3} - r6c4{n3 n8} - r4c5{n8 n3} - r7c5{n3 n6} - c4n6{r7 .} ==> r5c4≠7
biv-chain[4]: r5c4{n8 n6} - r7n6{c4 c5} - r1c5{n6 n5} - r2c5{n5 n8} ==> r4c5≠8, r2c4≠8
biv-chain[3]: r8n1{c6 c4} - r2c4{n1 n9} - c6n9{r2 r8} ==> r8c6≠7, r8c6≠8
t-whip[3]: r4n8{c7 c2} - c1n8{r6 r7} - c8n8{r7 .} ==> r1c7≠8
biv-chain[3]: c8n7{r7 r1} - r1n8{c8 c9} - c9n9{r1 r7} ==> r7c9≠7
whip[6]: r4n8{c7 c2} - r9n8{c2 c6} - r5n8{c6 c4} - r5n6{c4 c6} - c6n7{r5 r3} - c6n3{r3 .} ==> r6c9≠8
whip[1]: b6n8{r5c7 .} ==> r8c7≠8
t-whip[4]: r4n8{c7 c2} - r6n8{c1 c4} - r8n8{c4 c5} - c5n7{r8 .} ==> r4c7≠7
z-chain[3]: r4n7{c5 c2} - r9n7{c2 c9} - b6n7{r6c9 .} ==> r5c6≠7
z-chain[3]: c5n3{r8 r4} - b5n7{r4c5 r6c4} - r3c4{n7 .} ==> r8c4≠3, r7c4≠3
whip[4]: b5n7{r4c5 r6c4} - r6c9{n7 n3} - r7n3{c9 c1} - c2n3{r8 .} ==> r4c5≠3
naked-single ==> r4c5=7
whip[1]: c2n7{r9 .} ==> r7c1≠7
whip[1]: c5n3{r8 .} ==> r9c6≠3
finned-x-wing-in-rows: n3{r9 r4}{c2 c9} ==> r6c9≠3
singles ==> r6c9=7, r5c1=7, r5c2=1, r2c2=5, r1c3=3, r1c1=1, r1c6=6, r1c5=5, r5c3=5, r2c5=8, r8c5=3, r7c5=6, r5c4=6
finned-x-wing-in-rows: n8{r8 r6}{c4 c2} ==> r4c2≠8
stte
Note1: with the addition of ORk-splitting rules, there's a new control variable in the config file (?*allow-ORk-splitting*) allowing to choose if you want to use these rules or not?
Note2: without the ORk-splitting rules, the puzzle can still be solved, but in W7+OR5W8 (instead of W6+OR3W6 above).