Hi Steve,
Thanks for your honest feedback! Not exactly what I expected, but that makes it even more valuable!
SteveG48 wrote:I don't like
4r6c3 = 49r61c5 - 9r1c7|r2c4 = (13r13c7 & 1r2c4 & (1r2c4 - r2c12 = 1r3c1)) - (1|3)r7c17 = (13-4)r7c28 = 4r7c1 => -4r8c3,r4c1
Interesting! I actually thought you'd like that variant best, as it has the most normal syntax (though the most verbose too). Then again, it looks like I failed to communicate how it works, so maybe there's still a chance:
because (1r2c4 - r2c12 = 1r3c1) is always boolean true in this puzzle, so why write it?
Because if you don't write it, the weak link doesn't work. As I tried to explain, in this variant it doesn't matter if the chain fragment is permanently true or not, as long as it's true when needed. That's why it doesn't need its own strong link, though in a different situation it could have one (but no independent weak link, or it would be a real nested chain).
You can have any number of permanently true members in an ANDed node, as long as there's at least one variable (because if it's false, it would make the whole node false regardless of any other members). Similarly you could have just as many permanently false members in an ORed node, as long as at least one could be true. The only useless cases are if you have even one permanently false member in an ANDed node, or a permanently true member in an ORed node. Those nodes have constant truth values. Not this one.
What matters is that the combo (1r2c4 & (1r2c4 - r2c12 = 1r3c1)) is not always true, because of the variable 1r2c4. That gives us both the strong link (through 1r2c4) and the weak link (through 1r3c1) for that half of the full split node. Neither can work alone, because 1r2c4 has no direct weak link, and the chain fragment has no links at all by itself. That's why only their ANDed combo is a fully linkable unit.
Let's look at the simplified version:
9r2c4 = (1r2c4 & (1r2c4 - r2c12 = 1r3c1)) - 1r7c1
The combo node in the middle is TRUE only when both 1r2c4 AND (1r2c4 - r2c12 = 1r3c1) are true. Since the latter is always true, the truth value of the whole node is the same as that of 1r2c4.
Strong link: If 9r2c4 is false, then 1r2c4 is true and so is the combo node because the chain is always true. If the node is false, then 1r2c4 must be false, and 9r2c4 must be true. Thus there's a strong link between the combo node and 9r2c4.
Weak link: If 1r7c1 is true, then 1r3c1 must be false, and since the chain is always true, 1r2c4 must be false, which makes the combo node false (activating the strong link). If the node is true, then 1r2c4 is true and so is 1r3c1 because the chain is always true, which means 1r7c1 must be false. Thus there's a weak link between the combo node and 1r7c1.
How the truth values are distributed:
-9r2c4 +(+1r2c4 & +(+1r2c4 -1r2c12 +1r3c1)) -1r7c1 (going right)
+9r2c4 -(-1r2c4 & +(-1r2c4 +1r2c12 -1r3c1)) +1r7c1 (going left)
In both cases the chain node is true, and it actually needs to be.
Try getting the same results by taking out either 1r2c4 or the chain fragment, and without any of the other tricks.
--
I also don't like this variant
4r6c3 = 49r61c5 - 9r1c7|r2c4 = (13r13c7 & [+1r2c4 - r2c12 = 1r3c1]) - (1|3)r7c17 = (13-4)r7c28 = 4r7c1 => -4r8c3,r4c1
because adding the + sign doesn't change the boolean interpretation (at least in my mind).
You surprised me with that too!
I don't see any problem myself, because as far as I know, the '+' has no pre-existing meaning inside an AIC. Yet, I think I (finally) understand what you mean, which is why I deleted what I originally wrote. Perhaps it's a bit ambiguous, but I see little room for actual confusion if the intended semantics are explained, since no one uses the '+' for anything else inside a chain. It probably only makes sense in this particular situation anyway, by fixing one endpoint true in a chain that wouldn't otherwise lead to any conclusion.
In this case that syntax should be equivalent to this:
9r2c4 = (1r2c4 & -1r2c12 & 1r3c1) - 1r7c1
Anyway, here's how I see the difference in truth distributions. First without the '+' and then with it:
9r2c4 = (1r2c4 - r2c12 = 1r3c1) - 1r7c1
-9r2c4 +(?1r2c4 ?1r2c12 ?1r3c1) ?1r7c1 (going right)
?9r2c4 +(?1r2c4 ?1r2c12 ?1r3c1) +1r7c1 (going left)
In that variant neither outer link works because the middle node (the chain) is permanently true. On the other hand:
9r2c4 = (+1r2c4 - r2c12 = 1r3c1) - 1r7c1
-9r2c4 +(+1r2c4 -1r2c12 +1r3c1) -1r7c1 (going right)
+9r2c4 -(-1r2c4 +1r2c12 -1r3c1) +1r7c1 (going left)
This variant works because the middle node can actually switch truth states. The chain itself is the same, and thus permanently true, but the containing node is now true only if the chain's leftmost node 1r2c4 is true (implying +1r3c1), which makes both links work.
I liked the original idea because the use of ! clearly indicates that something special is going on. What that is can be explained in the hypothetical Eudora
explanation that we hope will someday exist.
Well, I'm glad you liked even one of them!
Do my counterarguments change your mind at all about the other two?