June 17, 2020

Post puzzles for others to solve here.

June 17, 2020

Postby tarek » Wed Jun 17, 2020 6:42 am

Code: Select all
+-------+-------+-------+
| . . 5 | . 7 . | . 1 . |
| . . . | . 8 9 | . . 3 |
| 8 . 3 | . . . | . . 2 |
+-------+-------+-------+
| . . . | . . 8 | 9 . . |
| 3 9 . | . 4 . | . . 6 |
| . 8 . | 1 . . | . 2 4 |
+-------+-------+-------+
| . . . | 7 . . | . . . |
| 2 . . | . . 1 | . 6 . |
| . 1 7 | . 3 6 | . . . |
+-------+-------+-------+
..5.7..1.....89..38.3.....2.....89..39..4...6.8.1...24...7.....2....1.6..17.36...

Play this puzzle online

Download Sukaku Explainer
User avatar
tarek
 
Posts: 3762
Joined: 05 January 2006

Re: June 17, 2020

Postby RSW » Wed Jun 17, 2020 8:21 am

Code: Select all
 +---------------+-----------+--------------+
 | 9    246  5   | 2346 7 23 | 46   1   8   |
 | 1467 2467 124 | 246  8 9  | 4567 457 3   |
 | 8    467  3   | 46   1 5  | 467  9   2   |
 +---------------+-----------+--------------+
 | 1457 2457 124 | 235  6 8  | 9    357 15  |
 | 3    9    12  | 25   4 27 | 18   578 6   |
 | 57   8    6   | 1    9 37 | 357  2   4   |
 +---------------+-----------+--------------+
 | 56   356  89  | 7    2 4  | 18   358 159 |
 | 2    34   89  | 89   5 1  | 34   6   7   |
 | 45   1    7   | 89   3 6  | 2    458 59  |
 +---------------+-----------+--------------+


7r4c8 > (3r6c7 > 7r6c6 > 2r5c6)&(-7r5c8) > -7r5! => -7r4c8 stte
RSW
 
Posts: 671
Joined: 01 December 2018
Location: Western Canada

Re: June 17, 2020

Postby denis_berthier » Wed Jun 17, 2020 9:43 am

Using only elementary rules:
Hidden Text: Show
singles
hidden-pairs-in-a-column: c3{n8 n9}{r7 r8} ==> r8c3 ≠ 4
naked-pairs-in-a-row: r8{c3 c4}{n8 n9} ==> r8c9 ≠ 9, r8c7 ≠ 8
naked-single ==> r8c9 = 7
hidden-pairs-in-a-column: c7{n1 n8}{r5 r7} ==> r7c7 ≠ 5, r7c7 ≠ 3, r5c7 ≠ 7, r5c7 ≠ 5
finned-x-wing-in-columns: n5{c2 c9}{r4 r7} ==> r7c8 ≠ 5
biv-chain[2]: c8n4{r2 r9} - b7n4{r9c1 r8c2} ==> r2c2 ≠ 4
whip[2]: r8n4{c7 c2} - b1n4{r1c2 .} ==> r2c7 ≠ 4
swordfish-in-columns: n4{c1 c3 c8}{r9 r4 r2} ==> r4c2 ≠ 4, r2c4 ≠ 4
biv-chain[3]: r4n3{c4 c8} - r7n3{c8 c2} - c2n5{r7 r4} ==> r4c4 ≠ 5
hidden-single-in-a-block ==> r5c4 = 5
biv-chain[3]: r4n3{c8 c4} - b5n2{r4c4 r5c6} - r5n7{c6 c8} ==> r4c8 ≠ 7
whip[1]: r4n7{c2 .} ==> r6c1 ≠ 7
stte
denis_berthier
2010 Supporter
 
Posts: 4238
Joined: 19 June 2007
Location: Paris

Re: June 17, 2020

Postby Leren » Wed Jun 17, 2020 11:36 am

Code: Select all
*---------------------------------------------*
| 9     246  5   | 2346 7  23 | 46    1   8   |
| 1467  2467 124 | 246  8  9  | 4567  457 3   |
| 8     467  3   | 46   1  5  | 467   9   2   |
|----------------+------------+---------------|
|d1457 d2457 124 | 235  6  8  | 9    c357 15  |
| 3     9    12  | 25   4  27 | 18    578 6   |
| 5-7   8    6   | 1    9 a37 |b357   2   4   |
|----------------+------------+---------------|
| 56    356  89  | 7    2  4  | 18    358 159 |
| 2     34   89  | 89   5  1  | 34    6   7   |
| 45    1    7   | 89   3  6  | 2     458 59  |
*---------------------------------------------*

M Wing : (7=3) r6c6 - r6c7 = (3-7) r4c8 = (7) r4c12 => - 7 r6c1; stte

Leren
Last edited by Leren on Wed Jun 17, 2020 8:53 pm, edited 2 times in total.
Leren
 
Posts: 5124
Joined: 03 June 2012

Re: June 17, 2020

Postby SteveG48 » Wed Jun 17, 2020 2:15 pm

Code: Select all
 *-----------------------------------------------------------*
 | 9     246   5     | 2346  7     23    | 46    1     8     |
 | 1467  2467  124   | 246   8     9     | 4567  457   3     |
 | 8     467   3     | 46    1     5     | 467   9     2     |
 *-------------------+-------------------+-------------------|
 | 1457  2457  124   | 235   6     8     | 9     357  c15    |
 | 3     9     12    | 25    4    b27    |c18   c578   6     |
 | 5-7   8     6     | 1     9   ad37    |d357   2     4     |
 *-------------------+-------------------+-------------------|
 | 56    356   89    | 7     2     4     | 18    358   159   |
 | 2     34    89    | 89    5     1     | 34    6     7     |
 | 45    1     7     | 89    3     6     | 2     458   59    |
 *-----------------------------------------------------------*


7r6c6 = r5c6 - (7=185)b6p345 - (5=37)r6c67 => -7 r6c1 ; stte
Steve
User avatar
SteveG48
2019 Supporter
 
Posts: 4497
Joined: 08 November 2013
Location: Orlando, Florida

Re: June 17, 2020

Postby SpAce » Wed Jun 17, 2020 4:04 pm

Code: Select all
.-------------------.--------------.--------------------.
|   9     246   5   | 2346  7   23 |  46     1      8   |
|   1467  2467  124 | 246   8   9  | g4567  h4(5)7  3   |
|   8     467   3   | 46    1   5  |  467    9      2   |
:-------------------+--------------+--------------------:
|   1457  2457  124 | 235   6   8  |  9      357    15  |
|   3     9     12  | 25    4  f27 |  18   gh57(8)  6   |
| cd57    8     6   | 1     9  e37 | d357    2      4   |
:-------------------+--------------+--------------------:
|  b56   b356   89  | 7     2   4  |  18   a[3]-58  159 |
|   2     34    89  | 89    5   1  |  34     6      7   |
|  b45    1     7   | 89    3   6  |  2      458    59  |
'-------------------'--------------'--------------------'

Just testing a new notation feature (embedded chain fragment). A couple of valid options:

Most explicit and normal (but redundant) syntax:

  • (3)r7c8 = (365)b7p217 - r6c1 = (5r6c7 & 7r6c1 & [7r6c1 - r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
Using a TRUE constant:

  • (3)r7c8 = (365)b7p217 - r6c1 = (5r6c7 & 7r6c1 & [(§-7)r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
Using a FALSE constant:

  • (3)r7c8 = (365)b7p217 - r6c1 = (5r6c7 & [(!=7)r6c1 - r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
+experimental:

  • (3)r7c8 = (365)b7p217 - r6c1 = (5r6c7 & [+7r6c1 - r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
Code: Select all
Explanations for the symbols:

§ : TRUE  (constant)
! : FALSE (constant)

+ : candidate/node assumed TRUE (not yet sure if this is a good idea)
-SpAce-: Show
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   

"If one is to understand the great mystery, one must study all its aspects, not just the dogmatic narrow view of the Jedi."
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017

Re: June 17, 2020

Postby SteveG48 » Wed Jun 17, 2020 4:37 pm

Option 1.
Steve
User avatar
SteveG48
2019 Supporter
 
Posts: 4497
Joined: 08 November 2013
Location: Orlando, Florida

Re: June 17, 2020

Postby Ngisa » Wed Jun 17, 2020 8:28 pm

Code: Select all
+---------------------+-----------------+--------------------+
| 9       246     5   | 2346    7    23 | 46      1      8   |
| 1467    2467    124 | 246     8    9  | 4567    457    3   |
| 8       467     3   | 46      1    5  | 467     9      2   |
+---------------------+-----------------+--------------------+
|b1457   b2457    124 | 235     6    8  | 9      c357    15  |
| 3       9       12  | 25      4    27 | 1578    578    6   |
|a57       8       6  | 1       9    37 |d37-5    2      4   |
+---------------------+-----------------+--------------------+
| 56      356     89  | 7       2    4  | 1358    358    159 |
| 2       34      89  | 89      5    1  | 34      6      7   |
| 45      1       7   | 89      3    6  | 2       458    59  |
+---------------------+-----------------+--------------------+

(5=7)r6c1 - r4c12 = (7-3)r4c8 = (3)r6c7 => - 5r6c7; stte

Clement
Ngisa
 
Posts: 1412
Joined: 18 November 2012

Re: June 17, 2020

Postby SpAce » Thu Jun 18, 2020 12:43 am

Hi Steve,

SteveG48 wrote:Option 1.

It's indeed the cleanest variant. For better or worse, in this case it could be shortened, and the redundancy hidden a bit too:

    (3)r7c8 = (365)b7p217 - r6c1 = ((5,7)r6c71 & [7r6c1 - r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
The other two valid options ('§' and '!') avoid the redundancy even better, but they're probably harder to understand (especially the '§' option, but I don't recommend that anyway). All three are perfectly valid AICs as is -- no "preprocessing" needed -- so there's no need to forbid or to force-feed any of them (edit: on second thought, I don't think the '§' variant should be used unless I find cures for its flaws). Of course the '§' and '!' symbols need to be understood, but they can also be freely replaced with 'T' and 'F' or even 'TRUE' and 'FALSE' if one wants (obviously not '1' and '0', though).

In any case, I'm glad I found a symmetric (though a bit flawed) way to use the TRUE constant at last, even if it might have little practical use. It was bothering me, as I knew it had to be an option too. What do you think of the '§' symbol for it? I haven't seen any other common sudoku meanings for it, and I guess a legal symbol can be associated with the truth (or at least it should be).

I'm probably partial to the '!' option because it was the first one I came up with, and because that syntax has other uses too.

As for the last '+' option, I need to do some further thinking and testing with it (and the mirrored '-' option, too). My opinions about it seem too volatile at the moment to draw any final conclusions. I'll get back to it later.

--

Later. To summarize the current situation, we now have basically five valid ways to write the logic with an embedded chain fragment, but I'm not happy with two of them because they both fail to show some relevant links explicitly.

1) The baseline:

    (3)r7c8 = (365)b7p217 - r6c1 = (5r6c7 & 7r6c1 & [7r6c1 - r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
That doesn't have any big weaknesses, except for the redundancy and the resulting extra length. Both of them can be annoying in more complicated cases, but perhaps this notation shouldn't be used then at all. So, this is always a decent option, perhaps even the best. However, one additional weakness is that the embedded chain fragment is of the form (a - b = c) which is not a normal nested AIC with strong links at both ends, making the logic less intuitive to understand (for some, at least).

2) The FALSE-constant (!) option:

    (3)r7c8 = (365)b7p217 - r6c1 = (5r6c7 & [(!=7)r6c1 - r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
That has few weaknesses too, except for the slightly less clean syntax. It's shorter by avoiding the redundancy, has all the relevant links, and the notation is perfectly standard and valid -- except for the need to know the meaning of '!' (or whatever symbol or text is used to depict the FALSE-constant). Furthermore, the embedded chain is now a normal nested AIC with strong links at both ends (though one end happens to be FALSE, forcing the other end to be TRUE), which should make the interpretation quite intuitive (for some, at least). For those reasons, I still probably prefer this one overall.

3) The '+' option:

    (3)r7c8 = (365)b7p217 - r6c1 = (5r6c7 & [+7r6c1 - r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
That is basically a shorthand for the '!'-option. As in that, 7r6c1 is assumed true (just more directly) which forces 7r5c6 true as well. All relevant links are present, perhaps even more clearly than in option 2. The other upsides are shortness and relative cleanness. The main downside is the non-standard (but hopefully relatively intuitive) meaning of the '+' as an assumptive symbol. Another is that it's a bit more awkward to write backwards, as either the '+' gets next to a weak link (- +7r6c1) or otherwise it has to be written to the other side of the node (- 7r6c1+). Neither looks very good. It also has the less intuitive (+a - b = c) form, but on the other hand, a correct interpretation of the '+a' should make it easy to understand. The jury is still out whether I like this option or not.

4) The TRUE-constant (§) option:

    (3)r7c8 = (365)b7p217 - r6c1 = (5r6c7 & 7r6c1 & [(§-7)r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
That is the second newest option. It's basically a shorthand for option 1, with the second instance of 7r6c1 replaced with the §-symbol. It has few upsides, except for the shorter form. Its main purpose is to be a proof of concept (of how to use the TRUE-constant) and a symmetric partner to the FALSE-constant option. A major downside is that it's probably harder to understand than any of the previous options. Also, the chain is of the form (a - b = c), though since 'a' is TRUE, it should be easy to understand (as long as one knows the meaning of '§').

Worst of all, however, it doesn't depict the weak link 7r6c1-7r6c6 directly at all, nor does the strong link between 5r6c1 and the chain fragment work directly. In fact, the ANDed 7r6c1 is irrelevant for the logic, and it's just written there to explain the following (§-7)r6c6. It would work logically just as well without it, but it would be even harder to understand:

    (3)r7c8 = (365)b7p217 - r6c1 = (5r6c7 & [(§-7)r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
I wouldn't use this second option at all. It's borderline ambiguous because it basically skips a step, and the links aren't fully explained. However, since it's technically equivalent to the first form, it also means the same flaws are present in that (just less obvious because of the superfluous 7r6c1). Thus, I wouldn't use either, at least until those problems have been solved.

5) The '-' option:

    (3)r7c8 = (365)b7p217 - r6c1 = (5r6c7 & 7r6c1 & [-7r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
Just like the '+' option was a shorthand for the '!' option, this is a shorthand for the '§' option. As such, it's the latest addition to the family, and for the same reasons as its parent -- it's just for a proof of concept and for symmetry. It has all the same downsides as the '§' option, including the missing direct links, so I can't recommend using it (at least for this case, and like this).

However, it has a bit of an advantage over the corresponding '+' option, because the use of the '-' for NOT is more standard (though rarely used in AICs, where the symbol is almost exclusively used for weak links). Thus the notation itself should need no extra explanations, even though the strong link [-7r6c6 = 7r5c6] might seem weird or even incorrect at first. It's actually perfectly fine. It does exactly the same as all the other forms did in different ways: forces 7r5c6 to be true (when read from the left) or causes a contradiction (when read from the right). Then again, it could be written (-7r6c6|7r5c6) or just 7r5c6, so there's no need for any embedded chain at all. Thus, at least in this particular case, this form makes little sense.

--

Conclusion.

Options 1,2,3 are all good, as far as I'm concerned. 1 has the most standard (yet the most verbose) syntax, 2 is shorter and not much less standard, 3 is the shortest but the least standard. 2 is probably my favorite, but I'll probably experiment with them all.

At this point I don't see any practical use for options 4 and 5, though I might investigate their potential more.

One thing is for sure, though. This form is an invalid AIC (no matter what anyone might claim):

    (3)r7c8 = (365)b7p217 - r6c1 = (5r6c7 & [7r6c1 - r6c6 = 7r5c6]) - (5)r2c7|(5|7)r5c8 = (58)r25c8 => -58 r7c8; stte
(Different kinds of brackets won't make any difference, unless they're used as a mark-up for a "preprocessor" that maps it into one of the valid forms. {} has been suggested for that purpose, but I don't see any real need for that here, as the valid forms are short enough on their own. There's no need to complicate things any further. Just use any of the valid options 1-3 and you're fine.)
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017


Return to Puzzles